3
respostas

Pode ser assim ?

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

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

Ex.: De como fica o código usando o "inserir código"

Bom pelo que eu entendi, SIM.

Corrija-me se eu estiver errado. No this.saca(valor), vc já está retirando o montante da "conta de origem", ou seja, aquela que chamou o transfere(...) ?. Então caso tenha sucesso irá então entrar no if do trecho que vc mandou acima.

PS: Tem um botão "inserir codigo", quando está criando um novo tópico tente usar ele e deixar o código indentado da próxima vez

A lógica é essa mesma, só que acredito que para ficar mais elegante deveríamos colocar o else, no "return false". se eu estiver errado me corrijam.

Eu particularmente acho bem desnecessário nesse caso. Pois acho bem mais simples de ler o código acima (Ao meu ver fica mais "limpo o código" e não atrapalha no entendimento caso outro programador vá ler).

Do que acrescentar 2 linhas da forma que está abaixo.

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

Acho que fica ate meio redundante, pois sabe-se que o código embaixo do IF, somente será executado, SENÃO chegar na linha do "return true";

Já que se chegar na linha de algum RETURN, que esteja dentro do método, o mesmo irá "parar" ali.