Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Usando o método sacar no transfere

Bom dia! Prezados, Foi lançado o desafio de alterar o método transfere para reutilizar o código implementado em saca, da classe Conta, para simplificar o código. Fiz da conforme código abaixo forma e funcionou, seria isso mesmo?

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

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

    }
2 respostas

Bom Dia Rodrigo,

Sim é uma boa forma de simplificar o código. Porém só temos um problema na hora dessa simplifacação que é o fato da ação de sacar em um banco pode ter algumas regras que depósito não teria.

Por exemplo, se quisermos limitar o valor de saque para R$500.00 isso faria com que o depósito depois dessa alteração estivesse limitado a R$500.00 o que as vezes não é algo que queiramos.

Por isso sempre é bom pensarmos bem antes de fazermos essas simplificações pois podemos complicar as coisas no futuro.

solução!

Opa Rodrigo, tudo bem?

Eu acredito que o código funcione dessa forma. Mas veja que dentro do método saca() que está sendo chamado dentro do transfere(), já existe uma condição if(this.saldo >= valor). Portanto estamos fazendo essa checagem DUAS vezes:

Uma dentro do método transfere()

public boolean transefere(double valor, Conta destino) {
    if(this.saldo >= valor) {
        this.saca(valor);   

e outra no próprio método saca():

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

Ou seja, estamos repetindo a mesma lógica no método transfere(). Se quiser ver outra alternativa que usa apenas a lógica contida no saca(), dá uma olhada nesse outro tópico que acredito que possa ajudar!

Se tiver alguma outra dúvida é só avisar!

Bons estudos!!