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

Exercício 3 Arrays

Estou tentando rodar meu código do exercício e esta aparecendo o seguinte erro:

C:\Users\tr589895\Desktop\Projetos\Java>javac Funcionario.java
C:\Users\tr589895\Desktop\Projetos\Java>javac Data.java
C:\Users\tr589895\Desktop\Projetos\Java>javac TestaEmpresa.java
TestaEmpresa.java:4: error: cannot find symbol
                empresa.empregados = new Funcionarios[10];
                                         ^
  symbol:   class Funcionarios
  location: class TestaEmpresa
1 error

C:\Users\tr589895\Desktop\Projetos\Java>

segue os códigos das classes:

class Funcionario {
    String nome;
    String dpto;
    double salario;

    String rg;

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

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

    Data dataEntrada = new Data();

    public void mostra(){
        System.out.println("Funcionario:" + this.nome);
        System.out.println("RG:" + this.rg);
        System.out.println("Data de entrada: " + this.dataEntrada.getFormataData());
        System.out.println("Trabalha no departamento de:" + this.dpto);
        System.out.println("salario atual:" + this.salario);
        System.out.println("Salario Anual: " + this.calculaGanhoAnual());
    }
}
class Empresa {
    String cnpj;
    Funcionario[] empregados;
    String endereco;
    int livre = 0;

  void adiciona(Funcionario f) {
        this.empregados[this.livre] = f;
        this.livre++;

    }
}

e

class Data {
    int dia;
    int mes;
    int ano;

    public void preencheData (int dia, int mes, int ano) {
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    String getFormataData() {
         return this.dia + "/" + this.mes + "/" + this.ano;
    }

}

e

class TestaEmpresa {
    public static void main(String[] args) {
        Empresa empresa = new Empresa();
        empresa.empregados = new Funcionarios[10];

        Funcionario f1 = new Funcionario();
        f1.salario = 1000;
        f1.dataEntrada = new Data();
        empresa.adiciona(f1);

        Funcionario f2 = new Funcionario();
        f2.salario = 1700;
        f2.dataEntrada = new Data();
        empresa.adiciona(f2);

        empresa.empregados[0].mostra();
        empresa.empregados[1].mostra();

    }
}
2 respostas

Olá Giovani, boa tarde! O erro é na class TESTAEMPRESA.

 empresa.empregados = new Funcionarios[10];

Basta alterar:

 empresa.empregados = new Funcionario[10];

Colocasse a classe Funcionario no plural, por isso, deu erro.

solução!

Tudo bem Giovani?

Na criação do array, se usa o nome da classe, então ficaria:

new Funcionario[10];

Tem só um "s" no nome da classe Funcionario (ficou no plural), no seu método main:

class TestaEmpresa {
    public static void main(String[] args) {
        Empresa empresa = new Empresa();
        empresa.empregados = new Funcionarios[10];

        // ...
    }
}

É só remover o "s" que tudo deve funcionar! :)

Fica assim:

class TestaEmpresa {
    public static void main(String[] args) {
        Empresa empresa = new Empresa();
        empresa.empregados = new Funcionario[10];

        // ...
    }
}

Abraço!