Para compartilhar código aqui no forum, você pode adicionalo entre dois trios de crases ```. Alterei seu post caso você quera ver um exemplo =)
No canto esquerdo superior da caixa de texto de respostas também temos o botão inserir código que ja traz isso pronto pra gente.
Quanto so código, acredito que seja só um probleminha de sintaxe mesmo que eu deixei passar. Aqui:
funcionario[].length
Acredito que estamos querendo nos referenciar ao array funcionario da classe empresa:
// aqui a declaração dos [] fica na frente do tipo para indicarmos que queremos um array daquele tipo
Funcionario funcionario[] = new Funcionario[4];
// o correto seria
Funcionario[] funcionario = new Funcionario[4];
Porém também estamos recebendo uma variavel chamada funcionario como parametro no método adiciona:
void adiciona(Funcionario funcionario)
Como os dois tem o mesmo nome a gente pode diferenciar o atributo da classe pela palavr this. Algo como:
// aqui não precisamos dos [] pois queremos apenas acessar o atributo funcionario =)
for (int i = 0; i <= this.funcionario.length; i++)
Uma outra forma de evitar a confusão dos nomes é dar nomes diferentes para eles. No caso, acredito que o atributo que contem o array de Funcionario, poderia se chamar funcionarios:
Funcionario[] funcionarios = new Funcionario[4];
Assim, podemos utilizar no nosso método adiciona a palavra funcionarios, evitando o conflito:
class Empresa{
String nome;
String cnpj;
Funcionario[] funcionarios = new Funcionario[4];
Empresa (String nome, String cnpj, Funcionario[] func){
this.nome = nome;
this.cnpj = cnpj;
this.funcionarios = func;
}
void adiciona(Funcionario funcionario){
for (int i = 0; i <= funcionarios.length; i++){
if (funcionarios[i] == null)
funcionarios[i] = funcionario;
continue;
}
}
}