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

É necessário o void?

Bom no meu método depositar eu coloquei para retornar o valor do saldo, desta forma:

public void deposita(double valor) {
        this.saldo += valor;
        System.out.println("O saldo atual é de: R$"+this.saldo+" reais.");
    }

E funcionou, porém depois que fui ver o que significa o void, que serve para dizer que não tem retorno, mas então o print que eu coloquei, dentro deste método não seria ideal né? Mas funcionou...

Podemos ver que não entendi nada do void...

3 respostas
solução!

Depende da intenção. Se sua intenção é que seja exibida essa mensagem toda vez que invocar o método, sem problemas. Como o método não tem um tipo de retorno, coloca-se void para dizer ao compilador: "olha, tá tudo bem com esse método, ele não tem que retornar nada mesmo".

Completando... o método deposita não retornou nada, somente escreveu no console por conta do print.

Agora vamos supor que seu método deposita tivesse que retornar um valor booleano, true caso deu certo o depósito ou false caso não, aí o seu método teria que ter a assinatura public boolean deposita(double valor) e em outra parte de código chamaria assim: if(deposita(quantia)) System.out.println("Depósito feito com sucesso!"); else System.out.println("Depósito não efetuado");

Olá, Jamili,

Caso ainda esteja confuso, uma forma bem simples de entender o tipo do retorno é se perguntar: Eu quero guardar algum valor em uma variável (fora do seu objeto) após invocar esse método? Ou, meu método retorna algum valor que possa ser armazenado em uma variável? Se sim, qual o tipo? Se não, usamos o void. Para saber o que estamos retornando, procure pela palavra-chave return dentro do seu método. Reparou que ela não está dentro do seu método? Então o retorno é void, se estivesse return; também seria void. Qualquer coisa diferente disso, vc teria um erro de compilação se não declarar o tipo apropriado.

Quanto a sua dúvida, acredito que a maior confusão está no uso do System.out.println() pensando que ele retorna algo (na realidade se olhar na View Declaration do Eclipse verá que usa o void). Lembre-se: o println imprimi no console e nada mais, vc não consegue guardar nem usar valor após invocá-lo; então se faça a pergunta, consigo guardar algum valor com esse método? Se sim, qual o tipo, se não o retorno é void.

Tente fazer o seguinte:

public class TesteVoid {
    public static void main(Strings[] args) {
        System.out.println(System.out.println("Imprimindo no console"));
    }
}

Verá que terá um erro de compilação, pois não é possível usar o void onde se usaria uma variável. Seria como usar 'nada' para fazer alguma coisa depois.