4
respostas

Dúvida sobre o método transfere

Fiz meu método transfere da seguinte forma, ele funciona normalmente, minha dúvida é, essa maneira é "politicamente correta" é uma forma bem vista de montar métodos?

public boolean tranfere(double valor, Conta destino){
        if (this.saldo >= valor && this.saca(valor) && destino.deposita(valor)) 
            return true;
        return false;
    }
4 respostas

Fala ai Pedro, tranquilo ?

Cara acredito que tanto o saca quanto o deposita sejam comportamentos que você quer que aconteça caso o saldo da conta seja maior que o valor de transferencia.

Ali no if a gente coloca quais são as condições que queremos validar, acredito que sacar e depositar já não entrem nisso.

Obrigado pela atenção Matheus!

Entendo o que tu disse, é que da forma que fiz ele executa as ações de depositar e sacar mesmo dentro das condições do if, quando o if for verdadeiro.

Acredito que tu quis dizer que não é forma correta, portanto não deve ser bem vista realmente.

Sim sim, basicamente.

Olá Pedro,

O que o Matheus disse está correto. Por definição, nos parênteses do if você vai colocar apenas as condições, enquanto que a execução deve vir dentro das chaves.

Este caso funcionou, mas terão casos que não funcionarão como se espera.

Além disso, imagine que outra pessoa do seu time precise alterar uma regra no código, ou que o seu eu do futuro precise implementar uma regra nova e o código está completamente fora do padrão: vai levar um tempão para lembrar ou entender o que foi feito ali, não é mesmo? Por isso é importante seguir as boas práticas de programação, que facilita a compreensão do código e evita erros de lógica ou compilação. ;)

Espero ter ajudado! Bons estudos!