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

Erro na linha 44

class Funcionario{
    Pessoa funcionario;
    String setor;
    String dataDeAdimissao;
    int cracha;
    double salario;

     void recebeAumento(double valor){
            this.salario += valor;
        }
     double calculaGanhoAnual(double ganho){
         return this.salario*12;
     }
     void mostra(){
         System.out.println("Local de trabalho: "+this.setor);
         System.out.println("Data de admissao na empresa: "+this.dataDeAdimissao);
         System.out.println("Numero do cracha: "+this.cracha);
         System.out.println("Salario bruto: "+this.salario);
     }
}



class Pessoa{
    String nome;
    String endereco;
    String dataDenascimento;
    int idade;

    void mostraPessoa(){
        System.out.println("Nome do funcionario: "+this.nome);
                System.out.println("Data de nascimento: "+this.dataDenascimento);
        System.out.println("Endereco: "+this.endereco);
        System.out.println("Idade do funcionario: "+this.idade+" anos");
    }

}

class Empresa{
    String nome;
    int cnpj;
    Funcionario[] funcionario;
    int livre=0;
        void adicionaFuncionario (funcionario ){
            this.funcionario[this.livre]= f;
            this.livre++;
        }
}

class listaDeFuncionario{
    public static void main(String[] args){

        Funcionario mauricio= new Funcionario();
        mauricio.setor="Adiministracao";
        mauricio.cracha=143899;
        mauricio.dataDeAdimissao="10/10/2000";
        mauricio.salario=1200.0;

        mauricio.funcionario= new Pessoa();
        mauricio.funcionario.nome="Mauricio Akbar";
        mauricio.funcionario.endereco="Rua da Paz numero: 777";
        mauricio.funcionario.dataDenascimento="12/01/1975";
        mauricio.funcionario.idade=42;
        mauricio.funcionario.mostraPessoa();
        mauricio.mostra();

        System.out.println("");

        Funcionario guilherme= new Funcionario();
        guilherme.setor="Logistica";
        guilherme.cracha=223450;
        guilherme.dataDeAdimissao="10/10/2005";
        guilherme.salario=900.0;

        guilherme.funcionario= new Pessoa();
        guilherme.funcionario.nome="Guilherme Xispirito";
        guilherme.funcionario.endereco="Avenida La vida 3600";
        guilherme.funcionario.dataDenascimento="01/11/1990";
        guilherme.funcionario.idade=25;
        guilherme.funcionario.mostraPessoa();
        guilherme.mostra();


        }

}

O erro que é dado é

funcionarios.java:44: error: cannot find symbol void adicionaFuncionario (funcionario f){ ^ symbol: class funcionario location: class Empresa 1 error

3 respostas

No método Empresa.adicionaFuncionário() você declarou que o tipo do parâmetro f é "funcionario" mas o certo é "Funcionario".

solução!

Fala mano o erro está no seu metodo.

 void adicionaFuncionario (funcionario ){
            this.funcionario[this.livre]= f;
            this.livre++;
        }

Repara que você Só esta passando o tipo da variavel e não a classe ou o tipo que ela é. Tenta assim.

 void adicionaFuncionario (Funcionario f // faz a modificação aqui ){
            this.funcionario[this.livre]= f;
            this.livre++;
        }

Obrigado