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).
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:
private class Java{
}
Não existe isso acima … ou é public ou é default… mesma regra se aplica a enum, ja que ela é um tipo especial de class.
[quote=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).[/quote]
Quase. Na verdade há um detalhezinho que faz diferença: Classes locais a métodos:
public void metodo() {
// compila ok.
class X {
private int y;
}
// NÃO COMPILA!!!!
enum Z {
A, B, C;
private int y;
}
}
[size=18]Pegadinha FDP:
[color=red]VOCÊ NÃO PODE TER ENUMS LOCAIS A MÉTODOS[/color][/size]