Não deveríamos ter inicializado a variável "empregados"? Não existe nenhum índice, inicializado, e sempre da exception.
class Empresa {
Funcionario[] empregados;
String cnpj;
int livre = 0;
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
}
}