Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

tamanho do array

Ao declarar o array empregados de tipo Funcionario não foi especificado o seu tamanho, e logo depois, no método adiciona há um incremento de posições desse array. Não entendi isso.

class Empresa {
  String nome;
  String cnpj;
  String endereco;
  Funcionario empregados[];
  int livre;

  void adiciona(Funcionario f) {
    this.empregados[this.livre] = f;
    this.livre++;
  }
}
1 resposta
solução!

Bom dia,

Quando você instanciar a classe Empresa, terá que criar um array e setar no atributo, tendo então a definição de tamanho, ou você faz isso na própria declaração, para ser automático quando instancia:

class Empresa {
  String nome;
  String cnpj;
  String endereco;
  Funcionario empregados[] = new Funcionario[10];
  int livre = 0;

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

Dessa forma, você já sabe o tamanho do array ao instanciar, e já sabe que o livre inicia no zero, assim adicionando um elemento, faz colocar no índice 0, e o valor de livre vai para 1. O próximo adiciona vai no índice 1, e livre vai para 2, e assim por diante.

Lembre-se que você ainda está no básico, depois verá meios de deixar tudo mais dinâmico.

Abraços.