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

Aula 02 Funcao TestaFuncionario

olá

nao consegui entender a mensagem de erro durante a compilação. Olhe, revi mas não achei erro de digitação. Meu código está assim: class Funcionario { String nome; String departamento; double salario; String dataAdmissao; String RG;

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

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

class TestaFuncionario {

public static void main(String[] args) { Funcionario f1 = new Funcionario();

f1.nome = "Hugo"; f1.salario = 100; f1.recebeAumento(50);

System.out.println("salario atual:" + f1.salario); System.out.println("ganho anual:" + f1.calculaGanhoAnual()); } }

}

A mensagem de erro durante a compilação javac Funcionario.java é:

Illegal static declaration in inner class Funcionario.TestaFuncionario public static void main(String[] args) { ^ modifier 'static' is only allowed in constant variable declarations 1 error

No aguardo

2 respostas
solução!

Adicione o 'Static', conforme abaixo:

static class TestaFuncionario

Olá João,

Para corrigir seu problema você precisa colocar cada classe em um arquivo separado.

Primeiro você teria um arquivo Funcionario.java para a classe Funcionario:

class Funcionario {
    String nome;
    String departamento;
    double salario;
    String dataAdmissao;
    String RG;

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

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

Depois, um arquivo TestaFuncionario.java para a classe TestaFuncionario:

class TestaFuncionario {

    public static void main(String[] args) {
        Funcionario f1 = new Funcionario();

        f1.nome = "Hugo";
        f1.salario = 100;
        f1.recebeAumento(50);

        System.out.println("salario atual:" + f1.salario);
        System.out.println("ganho anual:" + f1.calculaGanhoAnual());
    }

}