3
respostas

[Sugestão] Para quem está com Problema com o método tranfesre.

Código antigo:

    public boolean transfere(double valor, Conta destino) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            destino.deposita(valor);
            return true;
        } else {
            return false;
        }
    }

Código novo: utilizado nessa aula.

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

Fala Eduardo, tudo certo?

Show! Obrigado por compartilhar aqui conosco no fórum! Para complementar, indico o alura+ sobre o padrão de projeto Fail Fast, que consiste em testar o caso de falha primeiro e remover níveis de identação do código, tal que:

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

E caso a operação de saque não funcione, ou seja, retorne false, já é retornado esse valor, e no caso de funcionar a função continua sua execução, fazendo o depósito na conta de destino e devolvendo true.

Um grande abraço e bons estudos!

Muito bom! estava quebrando a cabeça antes de vir aqui!, resolvido!

Poderia dar mais detalhes do !this ?? Fiz uns testes com ! e sem, o código deixa depositar sem mexer no saldo!