Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida sobre desafio de usar o método "saca" dentro do método "transfere"

Para resolver o desafio, coloquei outro parâmetro no método "transfere" para usar o "saca" na contaDaMarcela. Mas sinto que, mesmo funcionando, não deva estar na maneira correta. Gostaria que me ajudassem, por favor.

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

Olá Paulo tudo bem?

Vamos lá, nesse caso você não precisa passar a conta de onde o dinheiro está saindo, pois o método em questão já é uma instancia dessa conta origem.

No caso ficaria algo assim:

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

o this no caso já é a conta de origem, você não precisa de um parâmetro adicional para isso.

solução

Olá Paulo, tudo bem com você?

Acredito que o uso do usuario possa ter deixado o código mais confuso, isso porque a própria classe representando a Conta já possui o método saca(). O ideal é que apenas a própria classe Conta manipule seus atributos.

Dá uma olhada nesse outro tópico, onde eu tento explicar uma possível solução para o exercício. Mas se ficar alguma dúvida em relação a algo que eu escrevi, por favor, me avise! ;)

Edit: o nosso colega tocou em um ponto muito importante sobre o this que eu esqueci de mencionar. Boaa, Érico!

Forte abraço e 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