Olá Pablo, eu fiz algumas alterações para que seu código possa rodar,coloquei comentários tentando explicar o que alterei, qualquer dúvida só falar. Abaixo disponibilizei as classes que fiz alteração.
class Empresa {
// Como o seu funcionário está como privado, não há como deterimar
// diretamente na classe de teste, para fazer isso eu criei um
// constructor para no momento em que você der new Empresa já poder
// passar a quantidade de funcionários que essa empresa terá.
public Empresa(int i) {
this.funcionarios = new Funcionario[i];
}
private String nomeEmpresa;
public void setNomeEmpresa(String nome) {
this.nomeEmpresa = nome;
}
public String getNomeEmpresa() {
return this.nomeEmpresa;
}
private String cnpj;
public void setCnpj(String texto) {
this.cnpj = texto;
}
public String getCnpj() {
return this.cnpj;
}
private Funcionario[] funcionarios;
/*
* public void setFuncionario() { Funcionario newFuncionario[posicao] = new
* Funcionario(); newFuncionario. this.funcionarios = newFuncionario[posicao]; }
*/
public Funcionario getFuncionario(int posicao) {
return this.funcionarios[posicao];
}
private int livre = 0;
// Alterei o método adiciona funcionário para ele ficar public e poder ser
// utilizado pela classe de teste.
public void adiciona(Funcionario f) { // metodo para adicionar funcionarios.
this.funcionarios[this.livre] = f;
this.livre++;
}
public void mostraTodasAsInformacoes() {
System.out.println();
System.out.println("*************************");
System.out.println("A empresa: " + getNomeEmpresa());
System.out.println("Com o CNPJ: " + getCnpj());
System.out.println("*************************");
System.out.println();
for (int i = 0; i < this.funcionarios.length; i++) {
Funcionario funcionario = this.funcionarios[i];
if (funcionario == null)
continue;
funcionario.mostra();
System.out.println("Funcionario na posicao: " + i);
}
}
}
class ProgramaEmpresa {
public static void main(String[] args) {
Empresa emp1 = new Empresa(10); // Constructor da empresa determinando a quantidade
// de Funcnionários
emp1.setNomeEmpresa("MicroAPP");
emp1.setCnpj("45678912");
// Conforme o código você deve primeiro criar um Funcionário
// para depois passar ele pelo método adiciona
//emp1.getFuncionario(0) = new Funcionario[10];
Funcionario f1 = new Funcionario();
emp1.adiciona(f1);
//emp1.getFuncionario(0) = new Funcionario(); // já foi criado um Funcionário
emp1.getFuncionario(0).setNomeFuncionario("PABLO DE ABREU");
emp1.getFuncionario(0).setCpf("456789123");
emp1.getFuncionario(0).setFuncao("TI");
emp1.getFuncionario(0).setSalario(5000.00);
emp1.getFuncionario(0).setAumento(500.00);
// emp1.funcionarios[0].dataDeEntrada = new Data(); // não preciso mais deste
// new porque ja faço isso em Empresa.
emp1.getFuncionario(0).setDataDeEntrada(20, 02, 1988);
emp1.mostraTodasAsInformacoes();
}
}