1
resposta

Usando método saca no transfere

public class Conta {
    double saldo;// saldo é um atributo
    int agencia;
    int numero;
    String titular;

    public void deposita(double valor) {// metodo
        this.saldo += valor;
    }

    public boolean saca(double valor) {// metodo
        if (this.saldo >= valor) {
            this.saldo -= valor;
            return true;

        } else {
            return false;
        }
    }

    public boolean transfere(double valor, Conta destino) {
        if (this.saldo >= valor) {
            saca(valor);// metodo saca no transfere
            destino.deposita(valor);
            return true;
        }
        return false;
    }

}
1 resposta

Olá Neilor, tudo bem com você?

Peço desculpas pela demora em obter retorno.

Muito legal a sua solução, muito obrigado por compartilhar conosco aqui no fórum!

Muito legal a sua implementação, ficou de fácil leitura! Tenho apenas uma dica para te dar: o método saca retorna um valor booleano, ou seja, caso ele efetue o saque retorna true, caso não haja saldo, false. Isso permite que a gente faça uma verificação direta com o método. O código como está funciona e funciona muito bem, a lógica está certinha! No entanto, é feita uma verificação desnecessária que poderia ser removida dessa maneira:

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

assim, a gente deixa o método saca fazer essa verificação, que estava sendo feita no método saca() e no transfere(), assim tiramos uma validação desnecessária.

Fico à disposição em caso de dúvidas.

Um grande abraço e bons estudos!