Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Método void não retorna valor, dúvida cruel

Eu não consigo compreender porque um método declarado como void não retorna nenhum resultado, como não?

public void deposita(double valor) {
        saldo  = saldo + valor;     
    }

Temos o método acima, sendo que o objeto invoca o mesmo, e depois ele fazer uma soma e devolve um valor alterado, como no exemplo, onde a conta era 100, passou a ser 150, onde é que ele não retornou um resultado?

O resultado é exatamente o valor final. Eita dúvida cruel.

1 resposta

Fala ai Rogerio , tudo bem ?

Cara vai de linguagem pra linguagem, no java, como está vendo para falarmos que um método/função tem algum retorno, precisamos fazer duas coisas, primeira delas é utilizar a palavra reservada da linguagem para isso, que é return:

public void deposita(double valor) {
        saldo  = saldo + valor;     
        return saldo;
    }

Se formos ver, isso estará gerando um problema de compilação, ou seja, nosso código não funciona :(

Mas por que? Bom, um detalhe muitíssimo importante, quem está usando nosso método, não sabe que ele agora tem um retorno. Para fazer isso, será necessário alterar a assinatura do método, que atualmente, tem deixado claro que não tem nenhum retorno, ou seja, quando usamos void deixamos claro pro java que o método não devolve nada, apenas executa o bloco de código.

Para que nosso código retorne o saldo, precisamos falar que ele devolve um double:

public double deposita(double valor) {
        saldo  = saldo + valor;     
        return saldo;
    }

Espero ter ajudado, abraços :)