Boa noite senhores,
Percebi que posso colocar várias declarações públicas de classe dentro de um mesmo fonte, assim:
// Arquivo nomeado como BomDia.java
public class BomDia {}
class BoaTarde {}
class BoaNoite {}
Também percebi que posso colocar várias declarações públicas de interface dentro de um mesmo fonte, assim:
// Arquivo nomeado como Cafe.java
public interface Cafe {}
interface Almoco {}
interface Janta {}
Outro detalhe é que posso “mixar” várias declarações de classe/interface públicas dentro de um mesmo fonte, assim:
// Arquivo nomeado como BomDia.java
public class BomDia {}
interface Cafe {}
class BoaTarde {}
interface Almoco {}
class BoaNoite {}
interface Janta {}
Buscando informações de “organização de arquivos fonte em Java” encontrei algo descrito na Java Code Conventions no qual não consegui entender:
[quote]3.1 Java Source Files
Each Java source file contains a single public class or interface. When private classes and interfaces are associated with a public class, you can put them in the same source file as the public class. The public class should be the first class or interface in the file.
(fonte: Java Code Conventions)
[/quote]
:arrow: Pergunta: Como assim classes privadas? Não seriam classes privadas internas da classe pública? Ou estou errado e sim, posso ter “trocentas” classes privadas em um arquivo fonte desde que a primeira seja pública ??? :shock:
Porque até onde vão os conhecimentos que recebi na infância, o modificador de uma classe ou interface não pode ser definido como private ou protected a não ser que ela esteja interna à uma classe ou interface public, certo? O que entendo é o seguinte: posso ter um número de classes/interfaces ilimitado dentro de um arquivo fonte sendo que todas as classes/interfaces declaradas no arquivo serão públicas e essas poderão conter classes/interfaces com outros tipos de modificadores sejam public, protected ou private.
Obrigado. Aguardo ajuda!