Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na criação de atributos

Olá pessoal. O código abaixo acusa o seguinte erro:

Exercicio3-2.java:39: error: missing return statement } ^ 1 error.

Mas não consigo tirar o erro. Podem ver onde erro?

class Func{

String nome; String depart; String dataCont; String RG; double salario; double IRRF;

/cria um método recebeAumento que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento/

void recebeAumento(double Aumento){

this.salario += Aumento; }

/Cria também um método calculoGanhoAnual, que não recebe parâmetro algum, devolvendo o valor do salário multiplicado por 12 /

double calculoGanhoAnual(){

return this.salario * 12; }

double calculoIRRF(){

if (salario<=1903.98){

System.out.println("Não há desconto sobre a renda");

}else if(salario>=1903.99 && salario<= 2826.65 ){

this.IRRF = (salario*7.5/100) + 142.8;

}

}

}

1 resposta
solução!

Quando você diz para o java que um método retorna um valor, em todas as situações o seu método precisa retornar um valor, oque esta acontecendo é que, o seu método calculoIRRF, só retorna quando cai na condição do seu else if

uma solução para esse problema é no final dar um return obrigatorio, como nesse exemplo, utilizando aquele return 0:

class Func {

    String nome;
    String depart;
    String dataCont;
    String RG;
    double salario;
    double IRRF;

    void recebeAumento(double Aumento) {
        this.salario += Aumento;
    }

    double calculoGanhoAnual() {
        return this.salario * 12;
    }

    double calculoIRRF() {

        if (salario <= 1903.98) {

            System.out.println("Não há desconto sobre a renda");
        } else if (salario >= 1903.99 && salario <= 2826.65) {

            this.IRRF = (salario * 7.5 / 100) + 142.8;
        }

        return 0;
    }

}

Mas é muito importante você entender os tipos de retorno , e como funciona esse mecanismo no java, essa solução pode variar muito de acordo com a sua necessidade