Pense numa enum como uma classe. Ela vai obedecer os mesmo modificadores de acesso.
Se for uma classe separada, só pode ser public ou default/package.
Se for o membro interno de uma outra classe, pode ter qualquer modificador de acesso. Pois vai funcionar como um membro desta classe(como uma classe interna).
LPJava
dentro da classe enum é um membro da classe entao um membro vc pode usar todos os modifiadores e fora da classe enum é um tipo de class especial… entao vc nao declara uma class asism:
privateclassJava{}
Não existe isso acima … ou é public ou é default… mesma regra se aplica a enum, ja que ela é um tipo especial de class.
J
javando
opa
entendi
Brigadão gente XD
victorwss
Rafael Nunes:
Pense numa enum como uma classe. Ela vai obedecer os mesmo modificadores de acesso.
Se for uma classe separada, só pode ser public ou default/package.
Se for o membro interno de uma outra classe, pode ter qualquer modificador de acesso. Pois vai funcionar como um membro desta classe(como uma classe interna).
Quase. Na verdade há um detalhezinho que faz diferença: Classes locais a métodos:
publicvoidmetodo(){// compila ok.classX{privateinty;}// NÃO COMPILA!!!!enumZ{A,B,C;privateinty;}}
[size=18]Pegadinha FDP:
[color=red]VOCÊ NÃO PODE TER ENUMS LOCAIS A MÉTODOS[/color][/size]
J
javando
AH tah … mas q não pode colocar uma Enum dentro de um método eu sabia XD
victorwss
Ainda bem. Mas é só para ressaltar que as regras não são as mesmas e sim são QUASE as mesmas. E essa merda de pegadinha cai na prova!
J
javando
Valew cara XD
LPJava
Ainda bem. Mas é só para ressaltar que as regras não são as mesmas e sim são QUASE as mesmas. E essa merda de pegadinha cai na prova!
concerteza cai, brincando essas pegadinhas… ehhe… lembrar as regras e saber o por uqe é o essencial…
Paulo_Silveira
alem disso, nao existe enum inner no sentido real da palavra: toda enum aninhada é estatica, nao tem como fugir disso.
victorwss
Tem razão, tem mais essa regra exotérica. Se o enum é uma classe interna, ele tem o static implícito.