Dúvida sobre encapsulation

6 respostas
W

Uma classe com uma variável protected, tipo:

public class A { private int number; protected int id; }

para essa classe estar bem encapsulada devem ser todas variáveis private ou com protected tudo bem também ??

valeuu

6 Respostas

filipenf

Depende da aplicação, de que forma essa variável será usada, qual a lógica envolvida, etc… No geral a recomendação é usar private e acessar apenas com os getters/setters, mas pode haver necessidade de um acesso direto nas classes filhas…

W

Então, é que isso era uma questão em um simulado que fiz, ai tava perguntando se protected variables quebram a encapsulation !

ViniGodoy

Existem diversas discussões inflamadas a esse respeito.

O certo é que são menos encapsuladas do que private e, se sua classe permitir extensão, podem comprometer seriamente o encapsulamento. Um usuário pode, por exemplo, criar um filho da sua classe e colocar setters em atributos que eram para ser read-only.

m0ska

Eu concordo que a maioria dos atributos sejam privates, mas também concordo em usar getters and setters somente quando necessário. Atualmente vejo as pessoas criando getterns and setters para tudo, até para variáveis que só são lidas localmente.

programadormaia

Sinseramente queria entender o problema em usar metodos get e set.
Acredito que atributos devam ser private e possuir sempre metodos get e set.
Isso que é de fato um verdadeiro encapsulamento.
Temos que um sistema não pode ser feito pra hoje, e sim pra hoje e amanha. Se hoje não existe mau em acessar um atributo diretamente, amanha podemos ter que inserir algum tipo de validação. E mesmo que hoje só se acesse na mesma classe, podemos amanha querer acessar apartir de outra!! rsrs

E convenhamos… qual é a diferença entre fazer variavel; e getVariavel();

abs Victor Maia

m0ska

Bem, no meu caso, eu só uso geters and seters quando vou precisar do atributo, caso o contrário, deixo como private uma vez que só a própria classe vai precisar destes, o mesmo acontece com os métodos. Somente o que é necessário é visto de fora. Isso ajuda muito no encapsulamento.

Criado 25 de junho de 2009
Ultima resposta 25 de jun. de 2009
Respostas 6
Participantes 5