Bonjour,
Je pensais betement que les Enums se comportaient comme des classes ...

Comment est-ce possible ?
Comment ça marche ?

Pourquoi mon champ 'myvalue' est il visible?
(alors que TTT.aaaa ne l'est pas !!)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public class Test {	
	private class TTT {
		private int aaaa = -1;
	}
 
    private enum MYENUM  { 
        ELT1(11), ELT2(22), ELT3(33);
        private int myvalue;
        private MYENUM(int s) { myvalue = s; }
        // private void setMyvalue(int i) {}
    }
 
	public static void main(String[] args) {
		System.out.println(MYENUM.ELT1.myvalue);  // affiche 11
		MYENUM.ELT1.myvalue = 777; // ASSIGNABLE
		System.out.println(MYENUM.ELT1.myvalue);  // affiche 777
	}
 
}
J'ai tout d'abord supposé qu'il y avait des getter / setter par default mais en fait non car quand je decommente la ligne suivante, rien ne change (elle override rien du tout)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
private void setMyvalue(int i) {}
Bien entendu si je ne pveux pas qu'elle soit modifiée, il suffit que je mette final devant ma propriété, mais cela ne m'explique pas le fonctionnement de ce même champ PRIVE!

Si vous avez des elements de reponses ...
Merci d'avance..