class Empresa {
String nomeEmpresa;
String cnpj;
FuncionarioArray[] funcionarios;
int posicaoLivre = 0;
void adiciona (FuncionarioArray adicionaFuncionario) {
this.funcionarios[this.posicaoLivre] = adicionaFuncionario;
this.posicaoLivre++;
}
Testa Empresa
public static void main(String[] args) {
// Criando referências para os objetos..
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[6];
// Criando funcionários dentro de um loop e atribuir valores diferentes.
for(int i = 0; i < 5; i++){
Funcionario f = new Funcionario();
f.setSalario(1000.0 + (i * 100));
empresa.adiciona(f);
}
empresa.mostraEmpregados();
}
A classe e os métodos são simples de enteder, veja bem:
int posicaoLivre = 0;
void adiciona (FuncionarioArray adicionaFuncionario) {
this.funcionarios[this.posicaoLivre] = adicionaFuncionario;
this.posicaoLivre++;
}
Neste método você vai receber qualquer funcionario do Tipo funcionarioArray, ou de um tipo que seja um objeto array, e na medida que você for recebendo ele vai começar armazenar na posição 0 e no this.posicaoLivre++ ele vai incrementar, ou seja, no próximo funcionário ele vai receber a posição 1 e não mais 0.
// Criando funcionários dentro de um loop e atribuir valores diferentes.
for(int i = 0; i < 5; i++){
Funcionario f = new Funcionario();
f.setSalario(1000.0 + (i * 100));
empresa.adiciona(f);
}
Na classe de teste, você cria um lopping só para testar e não ficar adicionando um por um. Veja que ele passa o argumento nessa linha:
empresa.adiciona(f);
Entendido? Espero que sim! Bons estudos e abraços.