[Resolvido] Arquivos que não tenham classes publicas

2 respostas
mateuscs

Boa tarde,

Pessoal,

Estava lendo o livro de certificação e me veio uma dúvida.

A seguinte frase afirmativa:

“Arquivos que não tenham classe publicas podem ter um nome que não seja o mesmo de nenhuma classe do arquivo”.

Por Exemplo:

Podemos definir uma classe então Animal.java
com os codigos

class Dog{
	private String name;
	private void actionLatir(){
	};
}

 class Cat{
	private String name;
	private void actionMiar(){
	};
}

Após a compilação é gerado dois arquivos, Cat.class, e Dog.class. Mais seus o modificador da classe seria Default.
Como os padrões conhecidos são public, protected, private por definição:

http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html

Este exemplo fugiria um pouco do padrão Java, deixando assim somente as classes acessiveis no pacote,
isso então não seria uma boa escolha de programação Java, mais porém é permitido.

Lembrando que uma classe so pode ser declarada com acesso público ou default.

Alguem poderia me explicar a razão, ou especificar o uso deste tipo de abordagem.
Obrigado

2 Respostas

rmendes08

Mas com base em quê você diz que declarar uma classe com acesso default não é uma boa escolha ?

Para decidir qual o modificador de acesso apropriado para sua classe, método, atributo, etc. basta seguir o princípio do mínimo acesso. Esse princípio diz que uma classe ou membro de classe deve permitir acesso apenas na medida do necessário, a fim de manter o encapsulamento da classe ou do pacote.

Se a sua classe não precisa ser acessada fora do seu pacote, então o mais correto é declará-la com acesso default. Essa situação pode ocorrer de fato. Por exemplo, quando você deseja expor um conjunto de funcionalidades através de um Facade mas não quer revelar como essas funcionalidades são implementadas. Você pode declarar uma única classe pública no pacote e as classes restantes com acesso de pacote.

mateuscs

rmendes08

Boa definição cara, continuei a ler alguns artigos e me informei sobre este tipo de acesso.

Uma definição pratica seria o acesso minimo menos, esconder funcionalidades de classes em um pacote, de mostar somente o necessario.

Obrigado.

Criado 18 de agosto de 2011
Ultima resposta 18 de ago. de 2011
Respostas 2
Participantes 2