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

Erro

class TesteEmpresa {
    public static void main(String[] args){
                Funcionario f1 = new Funcionario();
                f1.salario = 1000;
                f1.dataEntradaBanco = new Data();
                empresa.adiciona(f1);

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

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

class Funcionario2 {
    String nome;
    String depto;
    double salario;
    Data datEntradaBanco;
    String rg;
}
class Data {
    int dia;
    int mes;
    int ano;
}
class Empresa {
    String nomeEmpresa;
    String cnpj;
    Funcionario2[] funcionarios;
    int ponteiro = 0; 

    void mostraEmpresa() {
        System.out.println(this.nomeEmpresa);
        System.out.println(this.cnpj);
    }


    void adicionar(Funcionario2 f) {
        this.funcionarios[ponteiro] = f; 
        ponteiro++; 
    }

    void mostraDadosFunc() {
        for (int i = 0; i < this.funcionarios.length; i++) {
            Funcionario2 func = this.funcionarios[i];
            if (func == null)
                continue;
            System.out.println("Nome: " + func.nome);
            System.out.println("Depto: " + func.depto);
            System.out.println("Salario:" + func.salario);
            System.out.println("RG: " + func.rg);
        }
    }
}
class TesteFuncionario {
    public static void main(String[] args) {
        Empresa emp = new Empresa();
        emp.nomeEmpresa = "Softwork";
        emp.cnpj = "12345678901";
        emp.mostraEmpresa();

        emp.funcionarios = new Funcionario2[10];



        Funcionario2 f1 = new Funcionario2();
        f1.nome        = "Livia";
        f1.depto    = "Informatica";
        f1.salario    = 1.000;
        f1.rg         = "121236";
        f1.datEntradaBanco         = new Data();
        f1.datEntradaBanco.dia    = 4;
        f1.datEntradaBanco.mes    = 1;
        f1.datEntradaBanco.ano    = 2017;

        emp.adicionar(f1); 

        Funcionario2 f2 = new Funcionario2();
        f2.nome        = "Ana";
        f2.depto    = "Medica";
        f2.salario    = 10.000;
        f2.rg        = "9777777";
        f2.datEntradaBanco        = new Data();
        f2.datEntradaBanco.dia    = 7;
        f2.datEntradaBanco.mes    = 8;
        f2.datEntradaBanco.ano    = 2013;

        emp.adicionar(f2);


        emp.mostraDadosFunc();
    }
}
5 respostas
.\Funcionario.java:1: error: duplicate class: TesteEmpresa
class TesteEmpresa {
^
.\Funcionario.java:18: error: duplicate class: Funcionario2
class Funcionario2 {
^
.\Funcionario.java:25: error: duplicate class: Data
class Data {
^
.\Funcionario.java:30: error: duplicate class: Empresa
class Empresa {
^
.\Funcionario.java:59: error: duplicate class: TesteFuncionario
class TesteFuncionario {
^
Funcionario.java:3: error: cannot access Funcionario
                Funcionario f1 = new Funcionario();
                ^
  bad source file: .\Funcionario.java
    file does not contain class Funcionario
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
6 errors

Boa tarde Livia, não entendi direito, todas essas classes estão no arquivo Funcionario.java?

Estão

Estão

solução!

Nesse ponto:

Funcionario f1 = new Funcionario();

Está tentando acessar a classe Funcionario mas ela não existe, por mais que o arquivo tenha esse nome. Dai o compilador não encontra uma class Funcionario que tenha salario e outros atributos