Olá pessoal,
Meu desafio ficou dessa forma:
class Conta {
double saldo;
int agencia;
int numero;
String titular;
public void deposita(double valor) {
this.saldo += valor; //poderia ser this.saldo = 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) { //separar com vírgula os argumentos.
if(this.saldo >= valor) {
this.saca(valor); //this.saldo -= valor;
destino.deposita(valor); // podemos reutilizar método da própria classe ou destino.saldo += valor.
return true;
}
return false; // return interrompe a execução do método. Else não é necessário nesse caso.
}
}
Na classe TestaMetodos
public class TestaMetodos {
public static void main(String[] args) {
// Operação de depósito
Conta contaDoRapha = new Conta();
contaDoRapha.saldo = 100;
contaDoRapha.deposita(50);// invocação de método deposita.
System.out.println(contaDoRapha.saldo);
// Operação de saque
boolean conseguiuRetirar = contaDoRapha.saca(20);// cria variável para ter retorno de true ou false.
System.out.println(contaDoRapha.saldo);
System.out.println(conseguiuRetirar);
// Operação de transferência
Conta contaDaTatiana = new Conta();
contaDaTatiana.deposita(1000);
boolean sucessoTransferencia = contaDaTatiana.transfere(300, contaDoRapha);
// contaDaTatiana.transfere(300, contaDoRapha);
// if(contaDaTatiana.transfere(300, contaDoRapha)) {
if(sucessoTransferencia) {
System.out.println("Transferência feita com sucesso!");
} else {
System.out.println("Saldo insuficiente.");
}
System.out.println(contaDaTatiana.saldo);
System.out.println(contaDoRapha.saldo);
}
}