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

Só consegui definindo o Array

Só consegui fazer o exercício definido a quantidade de posições do Array, dentro da classe Empresa:

Funcionario[] funcionario = new Funcionario[10];

Como o código funcionou no exemplo, abaixo?

class Empresa {
    Funcionario[] empregados;
    String cnpj;
    int livre = 0;

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

Olá, Paulo. Tudo bom?

Uma alternativa a declaração direto no atributo é declarar pelo construtor:

public Empresa(int numeroDeEmpregados, //outros atributos){
    this.empregados = new Funcionario[numeroDeEmpregados];
    // declaração de outros atributos
}

Espero ter ajudado =)

solução!

Paulo você pode também criar um objeto do tipo Empresa lá na classe de teste e depois de criado o objeto pode acessar o atributo funcionario e inicializa-lo. Tipo assim:

Empresa tec = new Empresa();
tec.funcionarios = new Funcionario[3];

Foi como eu fiz,mas é só mais uma maneira também. Espero ter ajudado.

Na verdade eu ja estava fazendo o passo seguinte e chamando o método na classe de teste, sem antes criar um novo objeto. Ambas as resposta me ajudaram. Valeu!

Acho que a resposta do exercício deveria ser corrigida fazendo menção a necessidade de instanciar o array. Vai gerar erro em execução para quem está começando a aprender.