package bytebank;
public class Conta {
double saldo;
int agencia;
int numero;
String titular;
public void deposita(double valor) {
this.saldo = this.saldo + valor; //equivalente a this.saldo += valor;
}
public boolean saca (double valor) {
if(this.saldo >= valor) {
this.saldo -= valor;
return true;
} else {
return false;
}
}
public boolean transfere(double valor, Conta destino, **Conta origem**) {** //referenciando a conta de origem**
if(origem.saca(valor)){// sem utilizar a referência Conta origem if(this.saldo >= valor) { this.saldo -= valor; }
destino.deposita(valor);
return true;
} //else { return false; } pode ser suprimido pois a linha debaixo vai executar caso o if dê falso
return false;
}
}
//na classe TestaMetodo:
public class TestaMetodo {
public static void main(String[] args) {
Conta contaDoPaulo = new Conta();
contaDoPaulo.saldo = 100;
contaDoPaulo.deposita(50);
Conta contaDaMarcela = new Conta();
contaDaMarcela.deposita(1000);
if(contaDaMarcela.transfere(300, contaDoPaulo, **contaDaMarcela**)) { **//chamando a Conta origem**
System.out.println("Transferência efetuada com sucesso.");
} else {
System.out.println("Saldo insuficiente.");
}
System.out.println("Saldo da conta da Marcela R$" + contaDaMarcela.saldo);
System.out.println("Saldo da conta do Paulo R$" + contaDoPaulo.saldo);
}
}