[quote=arthuroaraujo]Bom dia
Estou quase entendendo eles… Mas quero tirar uma duvida.
quando vc configura um setter pra uma variavel private o set altera o valor dela correto? E o get vai retornar o valor.
Entao por que nao se pode alterar o valor da variavel diretamente? Sendo que ela vai ser alterada de qualquer forma?
Bom se eu tiver errado me corrijam tbm…
Abçs a todos[/quote]
Um exemplo fácil de lembrar é a classe conta (foi o primeiro contato que tive com POO, graças a maravilhosa apostila da Caelum).
class Conta {
private String dono;
private double saldo;
public String getDono() {
return dono;
}
public void setDono(String dono) {
this.dono = dono;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
}
Não faz sentido, por exemplo, existir aquele setSaldo. Ao invés disso você deveria ter métodos como saca e deposita não concorda? Afinal você não pode simplesmente escolher o seu saldo.
class Conta {
private String dono;
private double saldo;
public String getDono() {
return dono;
}
public void setDono(String dono) {
this.dono = dono;
}
public void saca(double valor) {
saldo = saldo - valor;
}
public void deposita(double valor) {
saldo = saldo + valor;
}
}
[quote=kicolobo][quote=arthuroaraujo]Bom dia
Estou quase entendendo eles… Mas quero tirar uma duvida.
quando vc configura um setter pra uma variavel private o set altera o valor dela correto? E o get vai retornar o valor.
Entao por que nao se pode alterar o valor da variavel diretamente? Sendo que ela vai ser alterada de qualquer forma?
Bom se eu tiver errado me corrijam tbm…
Abçs a todos[/quote]
Dúvida hiper válida. Pragmáticamente falando, você tem razão em um primeiro momento.
Da uma lida neste link: http://blog.caelum.com.br/nao-aprender-oo-getters-e-setters/[/quote]
Hmmm eu sabia que já tinha visto o exemplo que eu acabei de postar em algum lugar (que não fosse na apostila da Caelum).