Metodos setters e getters em java, quando usar ?

Boa noite, estou estudando java a um tempo e estou com uma duvida sobre quando usar os métodos assessores Setters e Getters.

1º - Devo criar um setters e getters para todos os atributos ?

2º - Devo utilizar métodos assessores dentro do meu construtor ?
Exemplo:

public class Exemplo{

      private String nome;
      private String sobreNome;

               public Exemplo(String nome, String sobreNome){
                           
                   this.setNome(nome);
                   this.setSobreNome(sobreNome);

}

      public void setNome(String n){

             this.nome = n;

}

      public void setSobreNome(String sN){

            this.sobreNome = sN;

}
}

3º Devo usar metodos assessores dentro de metodos publicos ?
Exemplo Metodo Sacar

 public class Conta{
     
 private double saldo;

public void setSaldo (double saldo){

   this.saldo = saldo;

}

public double getSaldo(){

 return this.saldo;   

}

     public void sacar (double sacar){

         this.setSaldo(this.getSaldo() - valor)

}

}

1 curtida

Crie para todo atributo acessível de fora de seu package, ou seja aqueles que fazem parte da API publica do que você está desenvolvendo. É a convenção Java.

Agora em relação aos detalhes de implementação, como classes que não são publicas e não são acessíveis de fora do seu pacote, eu não vejo necessidade de fazer uso disso, salvo obviamente quando há efeitos colaterais (e.g. o setter salva o valor e “calcula” algo a mais).

Não. Mas é útil quando há efeitos colaterais.

1 curtida