Chamando setters no construtor

4 respostas
I

Gostaria de saber se é uma boa prática chamar os setters dentro de um construtor.

Como tenho que validar as variáveis que estou recebendo, pensei em chamar o setter diretamente do construtor para não precisar escrever a validação novamente dentro do construtor.

4 Respostas

deadscientist

Não é uma boa prática não. O setter foi feito justamente para ser usado fora da classe. É uma maneira das classes exteriores acessarem os atributos de uma classe qlqr.

No construtor vc deve usar os atributos diretos. Veja:

private String nome;

public Construtor(String nome){

this.nome = nome;

}
wbdsjunior

descordo. usar ou não set dentro do contrutor ou outro método da classe é questão de domínio (se há cálculos, validação, etc.). neste caso, especificamente, é importante usar o set, já que há validação nele.

uma sugestão: se você não vai alterar externamente o valor dos atributos depois de criado o objeto (ou não estiver usando um framework que faz uso deles), não crie os métodos sets, para evitar perder a integridade da instância.

FernandoFranzini

Pode usar sim, não existe nenhum problema!
Qualquer método publico de uma classe pode ser invocado de dentro e de fora de uma classe.

I

Valeu pela força galera…

Então deadscientist, como o wbdsjunior comentou, eu não vou apenas atribuir valores aos atributos… antes de aceitá-los eu preciso validá-los, e como a lei é: copiou, colou, isola… achei mais interessante chamar no construtor, mas não sabia se era uma boa prática…

Desculpem se a pergunta foi muito tosca, mas qd chamei os setters no construtor, o Netbeans me deu uma mensagem de Overridable method call in constructor.

Criado 29 de novembro de 2011
Ultima resposta 30 de nov. de 2011
Respostas 4
Participantes 4