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

Duvída no Exercício 1 da aula 3

Olá! Minha dúvida é a seguinte. Não consigo fazer o método calculaGanhoAnual corretamente acredito eu. O que fiz foi

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

}

porém se uso o método ele altera o valor do salário da pessoa! Gostaria de saber como faço o método para que não altere o salário da pessoa. Tentei:

void calculaGanhoAnual() { double ganhoAnual = this.salario * 12;

}

e logo em seguida:

System.out.println(luis.calculaGanhoAnual()); porém aparece como erro quando compilo! ele diz que void não é permitido nessa linha de impressão.

Como posso resolver esse problema? Ou seja, como faço pra imprimir o valor calculaGanhoAnual sem alterar o valor salário? Ah, quando eu uso o segundo método e o chamo ele funciona.... só falha na hora da impressão!

3 respostas

Oi, no exercício seguinte consegui resolver minha dúvida! Vi que no método calculaGanhoAnual ao invéz de declarar com void antes, se declara com double? Gostaria que alguém me comentasse o porque dessa diferença. Teria alguma relação com o fato do método não receber parâmetro?

solução!

Olá Luis, tudo bem?

A diferença entre void e algum tipo, como no seu caso o double, é bem simples. Primeiramente, a palavra reservada void indica que um determinado método não irá retorna qualquer tipo de valor. Já quando se usa double, int, ou qualquer outro tipo primitivo, ou não, você está dizendo que o método retorna um valor daquele tipo. Para entender melhor:

public void aumentaSalario(double porcentagem){
    this.salario = this.salario + (this.salario *  porcentagem);
}

Este método retorna nada.

public double retornaSalario(){
    return this.salario;
}

Este método retorna um double.

Espero ter ajudado.

Obrigado Filipe! Entendi!