[AJUDA] Exercícios Array apostila Caelum

  1. Volte ao nosso sistema de Funcionario e crie uma classe Empresa dentro do mesmo arquivo .java. A Empresa tem um nome, cnpj e uma referência a uma array de Funcionario, além de outros atributos que você julgar necessário.

class Empresa {
// outros atributos
Funcionario[] empregados;
String cnpj;
}

  1. A Empresa deve ter um método adiciona, que recebe uma referência a Funcionario como argumento, e guarda esse funcionário. Algo como:

void adiciona(Funcionario f) {
// algo tipo:
// this.empregados[ ??? ] = f;
// mas que posição colocar?
}

Você deve inserir o Funcionario em uma posição da array que esteja livre. Existem várias maneiras para você fazer isso: guardar um contador para indicar qual a próxima posição vazia ou procurar por uma posição vazia toda vez. O que seria mais interessante?
É importante reparar que o método adiciona não recebe nome, rg, salário, etc. Essa seria uma maneira nem um pouco estruturada, muito menos orientada a objetos de se trabalhar. Você antes cria um Funcionario e já passa a referência dele, que dentro do objeto possui rg, salário, etc.

Listo ai os 2 primeiros exercícios do capitulo 5 sobre arrays da apostila Caelum. Tive muita duvidas sobre Array e não estou sabendo como prosseguir.
Se alguém puder me dar umas dicas de como usar arrays e de como fazer os exercícios, fico muito agradecida! =]

Passar o funcionário como parâmetro é a solução orientada a objetos, não tenha dúvida hehe

A classe empresa está certa, só não se esqueça de iniciar o array no construtor da classe:

public Empresa(){ funcionarios = new Funcionario[QTD_MAXIMA_FUNCIONARIOS]; }
E quanto a saber em que posição adicionar o funcionário, eu particularmente prefiro guardar a próxima posição em uma variável de instância… aí fica tipo:

private int posicao; //posicao atual do array de funcionarios void adiciona(Funcionario f){ funcionarios[posicao++] = f; }