Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Duvida em relação a utilização de "set" dentro do construtor

Boa noite

A minha duvida é em relação a inicialização de um atributo dentro do construtor , existe alguma regra(boas praticas ) ou razão que me impede de usar o metodo set ao invez de "inicializar direto" ?

Por exemplo nessa classe aleatoria

public class Circulo{

    private double raio;

    public Circulo(double raio){
        // O certo seria eu fazer outro if  agora dentro do construtor?
        if(raio >=0 ) {
            this.raio = raio;
        }else 
            System.out.println("Erro raio negativo");

        //ou utilizar o metodo set?
        setRaio(raio); 

    }    

    public void setRaio(double raio) {
        if(raio >=0 ) {
            this.raio = raio;
        }else {
            System.out.println("Erro raio invalido");
        }
    }
    public double getRaio(){
        return this.raio;
    }

}
2 respostas

Tassio nesse caso não vejo tanta diferença. Mas em algumas situações a inicialização pelo construtor é feita também para não precisar do set, ai nesse caso temos que fazer direto pelo atributo

Tassio, nada impede a utilização de um ou o outro. Aconselho o uso do Set por padrão, mas é preferencia minha. Geralmente utilizo o Set pois nele é onde você irá realizar as validações do campo, mas se seus objetos são simples e não necessitam de validação quanto a valores, não existe a necessidade de utilizar o set, mas volto a afirmar, acredito que seja uma boa prática.