5
respostas

Não podemos utilizar o void em vez do double no calculaGanhoAnual ?

Não podemos utilizar o void em vez do double no calculaGanhoAnual ? pois eu não quero que ele retorne o valor. Se eu fizer como está o exemplo abaixo não daria certo ? quel melhor jeito ?

void calculaGanhoAnual (){ this.salario * 12; }

e depois chamar esse calculaGanhoAnual() ?

5 respostas

Poderia ser, mas deixaria o código mais longo, pois se você precisasse acessar o valor do salário você precisaria ter um get para o salário é chamar esse get, ou seja, um método e uma chamada a mais. Mas geralmente fica a critério de quem tá programando a lógica.

No caso, o código com esse método não compilaria. O compilador mostraria um erro:

error: not a statement
        this.salario * 12;
                     ^
1 error

Esse erro está indicando que não houve uma declaração válida no método. Caso você realmente queira utilizar o void, você poderia criar um método que mostrasse o valor do ganho anual.

void mostraGanhoAnual() {
    System.out.println(this.salario * 12);
}

E mais à frente, chamar o método. O problema é que, com isso, você terá um método que tem somente uma função (mostrar o ganho anual) enquanto que, utilizando um método que retorne o valor do ganho anual, você pode utilizar esse valor para outras funções.

Ou poderia fazer: this.salario = this.salario * 12;

Mas se fizesse isso, toda vez que o método fosse chamado, estaria modificando o atributo salario do funcionário (multiplicando por 12).

Exato. Se você não quiser modificar o atributo e não devolver um valor, apenas para o print, então o método que você mostrou já serve.