1
resposta

Resolução Desafio - Alterar o método transfere aproveitando o método saca.

Chamei o método saca dentro do método transfere, reaproveitando parte do código. Está correto desta forma?

public class Conta{
     double saldo;
     int agencia;
     int numero;
     String titular;

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

}
1 resposta

Parabéns Edna! Você conseguiu reaproveitar parte do código! Essa prática realmente traz muitos benefícios no desenvolvimento. Algo que também pode ser feito nesse caso é reaproveitar ainda mais coisas do método saca(). Por exemplo, o método saca() já verifica se a conta possui um saldo maior ou igual ao que foi solicitado. Então não é necessário fazer essa verificação novamente no método transfere(). Podemos passar o método saca() dentro do if já que esse método retorna true se os valores forem compatíveis, ou false caso contrário. Dessa forma, o método transfere() ficaria mais ou menos assim:

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