Em um Set ou Get é sempre melhor dar sets e gets em todos os campos ou há alguns casos em que é preperível dar sets em uma estrutura que seria coleção de váriso dados?
Eu recomendo que você utilize o Set para fazer com que as variávies com metodo de acesso private, visto que o mesmo é utilizado para “tirar o encapsulamento” sendo chamada por outros objetos.
…
private int num1;
//Se voce nao cirar um método de acesso public com o set esta variável irá morrer aqui.
public void setTirarEncapsulamento(int num2){
this.num1 = num2;
//O que eu fiz foi inicializar o valor num1 atraves da passagem por parametro
}
public int getVoltarNumero(){
return num1;
//Este método fara com que outros objetos consigam ver esta variável local
}
…
Na outra classa
…
Voce primeiro tera que criar um objeto desta classe
…
int b;
ex: primeiraClasse passagem = new primeiraClasse();
passagem.setTirarEncapsulamento(b);
passagem.getVoltarNumero();
…
[quote=hugleo]Em um Set ou Get é sempre melhor dar sets e gets em todos os campos ou há alguns casos em que é preperível dar sets em uma estrutura que seria coleção de váriso dados?
[/quote]
Acho que depende muito da sua logica… Se voce permita o desenvolvedor acessar diretamente a sua coleção, ele pode adicionar um objeto sem que o seu controle seja realizado. O encapsulamento está todo quebrado nesse caso.
Um exemplo é uma associadao entre Turma e Aula. Uma Turma tem várias aulas associadas a ela. E uma Aula só pode ser associada a uma Turma. Imagine o codigo abaixo:
Aula aula1 = turma1.getAulas.get(0);
turma2.getAulas.add(aula1);
Voce possui a mesma Aula em duas Turmas distintas. Se voce fizesse um metodo
Isso poderia ser evitado por a validacao de que aquela aula estaria associada a outra Turma estaria garantida.
Só adicione um método ou o que quer que seja, se isso lhe parecer realmente necessário.
Se vc, em lugar nenhum da sua aplicação precisar recuperar determinada informação, então vc não precisa de um get para ela.
Dá uma lida nesse ótimo post do Paulo:
http://blog.caelum.com.br/2006/09/14/nao-aprender-oo-getters-e-setters/