Robsonramosabrao:
Bom dia a todos!!!
Em meio a véspera de Natal, estou estudando para a SCJP por meio do livro da Kathy Sierra..
E surgiu uma dúvida sobre enums...
Eles são tratados muito parecidos com classes, "parecidos"..
O nome de um arquivo - fonte deve ser o mesmo de uma classe Pública, se houver uma classe pública..
Mas, se tivermos no mesmo arquivo-fonte um enum público ? o Arquivo - fonte tb deve ter o mesmo nome deste enum?
O que a Kate quer dizer é que se existe um TIPO publico no arquivo o nome do arquivo tem que ser igual ao desse tipo.
TIPO pode ser classe, interface, enum ou anotação.
É possivel ter mais de um tipo publico no arquivo, desde que todas além da primeira esteja definidas dentro da primeira.
Assim
public class ClassPublica {
public interface InterfacePublica {
}
public enum EnumPublico {
}
}
o problema é que para definir uma variável com o tipo interno vc tem que usar sempre o externo
Por exemplo
public class OutraClasseEmAlgumLugar implements ClassPublica.InterfacePublica {
}
Agora, ter mais do que um tipo publico no mesmo arquivo pode ser interessante em casos especiais ( veja Map.Entry no java padrão como exemplo) mas não é muito comum porque singifica que as classes têm alguma relação especial. Essa relação é rara.
Normalmente quando vc pensa em fazer isso vc não precisa realmente e pode criar dois arquivos separados para cada um.