Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não consegui reutilizar o codigo do método saca no metodo transfere"

 public boolean saca(double valor) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        } else {
            return false;
        }

    }
   public boolean transfere(double valor, Conta destino) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            destino.deposita(valor);
            return true;
        } else {
            return false;
        }
    }
1 resposta
solução!

Oi Felipe, tudo bem?

Observe que tanto no método saca() como no tranfere(), a lógica nesse trecho do código se repete:

if (this.saldo >= valor) {
    this.saldo -= valor;

Portanto podemos substituir esse trecho do transfere() pelo método saca(), deixando dessa forma:

public boolean transfere(double valor, Conta destino) {
    if ( saca(valor) ) {
        destino.deposita(valor);
        return true;
    }
    return false;
}

Perceba que agora, ao fazer uma transferência, encarregamos o método saca() de checar se temos saldo suficiente e também de subtrair o valor do saldo.

 public boolean saca(double valor) {
    if (this.saldo >= valor) {
        this.saldo -= valor;
        return true;
    } else {
        return false;
    }
}

Perceba também que se tivermos saldo suficiente, o método saca() retorna true, o que faz com que a condição if do método transfere() se torne verdadeira e, consequentemente, realize o depósito:

if ( saca(valor) ) {
    destino.deposita(valor);
    return true;
}

Espero ter ajudado, qualquer dúvida é só avisar!

Bons estudos!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software