Olá, Alvaro! Tudo bem contigo?
Quando eu deixo meus atributos públicos
String titular;
double saldo;
int agencia;
int numero;
qualquer um terá acesso a eles diretamente, por exemplo
c1.titular = "Fulano";
Agora, quando eu deixo privado
private String titular;
private double saldo;
private int agencia;
private int numero;
Ninguém terá acesso direto, somente através de um intermediário, que neste caso serão meus getters and setters
c1.setAgencia(570);
Ok!!!
Todo Get significa que quero pegar uma informação, trazer essa informação, e todo Set diz que eu quero inserir um dado (ou "setar" um dado), logo, quando esse dado é inserido, ele pode ter alguma validação, como por exemplo um if, for, como você mesmo mencionou, Álvaro!
O importante é que, quando eu chamo um Get logo eu espero um retorno.
public double getSaldo(){
return this.saldo;
}
Por isso do return
dentro do Get.
System.out.println(c1.getSaldo());
E quando eu chamo um Set, tenho que estipular um parâmetro (inteiro, caracter ou booleano) para que ele possa validar e guardar essa informação.
public void setTitular(Cliente titular){
this.titular = titular;
}
c1.setTitular("Fulano");
E por que não há return
? Por que todo set
é um void
e todo void
não há retorno. Experimente colocar return dentro do Set, ele vai reclamar!!!
Por esse motivo temos esses comportamentos diferenciados entre Getters e Setters
Esperto ter esclarecido um pouco mais, Álvaro!
Um abraço e bons estudos!!!