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 !!)
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
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 } }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!
Code : Sélectionner tout - Visualiser dans une fenêtre à part private void setMyvalue(int i) {}
Si vous avez des elements de reponses ...
Merci d'avance..
Partager