Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como diferencio a declaração de método?

Quando sei que preciso declarar um método como void ou como boolean?

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.saldo -= valor;
            destino.deposita(valor);
            return true;

        }else {
            return false;
        }
    }

}
1 resposta
solução!

Olá Marcio, tudo bem com você?

Então, é que no momento estamos com poucas interações entre classes, mas normalmente o retorno booleano é um indicativo para uma outra parte do sistema, por exemplo:

Vamos supor que temos 2 classes:

  • Conta
  • EnviadorDeEmail

Sempre que um usuário faz um saque, é enviado um email para alertar o usuário de forma a evitar fraudes, neste caso, o retorno booleano é muito bom pois podemos ter um código:

boolean resultado = conta.saca(valor);

if(resultado) {
    enviador.envia(usuario.getEmail());
} else {
    throw new Excpetion("Não foi possível sacar");
}

Claro que é um exemplo bem simples, mas na maioria das vezes é mais um indicativo em relação ao fato de ter conseguido realizar a operação ou não. A mesma coisa pode acontecer com um banco de dados, retornar true ou false para categorizar se uma exclusão foi feita de fato

Agora o void tem mais um sentido de uma operação que faz parte do processo, mas que não precisa indicar nada, por exemplo essa função envia( usuario.getEmail()) pode ser tranquilamente devolver vazio, pois eu não estou interessado no retorno dela, após enviar o email quero prosseguir a execução, não precisos de indicativos para prosseguir

Então é basicamente isso, retornos booleanos geralmente sugerem que precisamos desse resultado para tomar alguma ação ( normalmente algo para o retorno true e outro false), enquanto retornos vazios estão relacionados com operações que precisam se executas, mas que não interferem no nosso ciclo de execução =)

Conseguiu Compreender?

Abraços e Bons Estudos!