Boa tarde!
Nesse código:
class Conta{
int numero;
Cliente titular;
private double saldo;
private double limite;
public Conta(int numero, double limite){
this.numero = numero;
this.limite - limite;
}
public void saca(double valor){
if(valor > this.saldo + this.limite){
System.out.println("Saque invalido");
} else {
this.saldo = this.saldo - valor;
}
}
public void deposita(double valor){
this.saldo = this.saldo + valor;
}
public double getSaldo(){
return this.saldo;
}
public void setLimite(double novoLimite){
this.limite = novoLimite;
}
}
Considerando que o atributo numero é público e o atributo limite é privado:
class Conta{
int numero;
Cliente titular;
private double saldo;
private double limite;
...
}
O Construtor:
public Conta(int numero, double limite){
this.numero = numero;
this.limite = limite;
}
Não deveria estar escrito assim?
public Conta(int numero, double limite){
this.numero = numero;
this.setLimite(limite);
}
Nesse caso, poderia se dizer que o encapsulamento não foi violado (nem aparece mensagem de erro) porque é a própria Classe que está manipulando o atributo privado "limite"?