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

Uso de void

Porque utilizamos aqui o void ao invés do double, que já retornaria o tipo de dado que eu vou utilizar? Porque assim:

    void avalia(double nota){
        somaDasAvaliacoes += nota;
    }

E não assim:

double avalia(double nota){
    somaDasAvaliacoes += nota;
}
2 respostas
solução!

O primeiro exemplo que você mostrou, ele apenas altera o valor da variável 'somaDasAvaliações'.

void avalia(double nota){
        somaDasAvaliacoes += nota;
    }

Já o segundo código está faltando o return.

double avalia(double nota){
    return somaDasAvaliacoes += nota;
}

A diferença entre ele e o void é que o double retorna o valor e void não.

Por exemplo, pensa o seguinte, você vai enviar dois números para uma função e quer que ela te retorne a soma.

double soma(double n1, double n2){
    return n1 + n2;
}

Agora vc poderia usar ela da seguinte forma:

public class Teste {

    public static void main(String[] args) {
        double numero1 = 10;
        double numero2 = 20;

        System.out.println(soma(numero1, numero2));
    }

    static double soma(double n1, double n2) {
        return n1 + n2;
    }

}

Perceba que você está enviando dois números como parâmetros para a função soma, que são a variável chamada 'numero1' e 'numero2'. A função soma executa a operação e te retorna o valor, que neste caso é 30.

Se você trocar a função double por void, vai perceber que da erro, porque o void não retorna nada.

Em java, quando você usa a palavra-chave "void" em um método significa que este método não retorna um valor.

Já a segunda opção, você substituiu o void pelo Double, o que indica que este método deve retornar um double. Inclusive, se você tentar colocar este seu exemplo em uma IDE, ela vai acusar erro, pois falta o "return" (retorno). Como você declarou o método como Double, obrigatoriamente este método deve retornar um Double, se você tentar retornar uma String ou Int vai dar erro.

Estude getters e setters em java, vai te ajudar a entender melhor como isso se aplica na prática.