O programa compilou mas apareceu essa mensagem aí. Não sei o que significa. Vi que tinha um post semelhante no fórum, mas não entendi a resolução.
Exception in thread "main" java.lang.NullPointerException
        at Empresa.mostraEmpregados(Empresa.java:16)
        at TestaEmpresa.main(TestaEmpresa.java:14)class TestaEmpresa {
  public static void main(String[] args) {
    Empresa empresa = new Empresa();
    //empresa.empregados = new Funcionario[10];
    for(int i = 0; i < 5; i++) {
      Funcionario f = new Funcionario();
      f.salario = 1000 + i * 100;
      empresa.adiciona(f);
    }
    empresa.mostraEmpregados();
  }
}class Empresa {
  String nome;
  String cnpj;
  String endereco;
  Funcionario empregados[] = new Funcionario[10];
  int livre;
  void adiciona(Funcionario f) {
    this.empregados[this.livre] = f;
    this.livre++;
  }
  void mostraEmpregados() {
    for(int i = 1; i <= this.empregados.length; i++) {
      System.out.println("Funcionario: " + i);
      System.out.println("Nome: " + this.empregados[i].nome);
      System.out.println("RG: " + this.empregados[i].RG);
      System.out.println("Funcao: " + this.empregados[i].funcao);
      System.out.println("Departamento: " + this.empregados[i].departamento);
      System.out.println("Salario: " + this.empregados[i].salario);
      System.out.println("Data: " + this.empregados[i].dataEntrada.getDataFormatada());
    }
  }
}class Funcionario {
  String nome;
  String RG;
  String departamento;
  String funcao;
  double salario;
  Data dataEntrada = new Data();
  void recebeAumento(double percentualAumento) {
    this.salario += (salario * percentualAumento);
  }
  double calculaGanhoAnual() {
    return this.salario * 12;
  }
  void mostra() {
    System.out.println("Nome: " + this.nome);
    System.out.println("RG: " + this.RG);
    System.out.println("Funcao: " + this.funcao);
    System.out.println("Departamento: " + this.departamento);
    System.out.println("Salario: " + this.salario);
    System.out.println("Data: " + this.dataEntrada.getDataFormatada());
  }
}class Data {
  int dia;
  int mes;
  int ano;
  void preencheData (int dia, int mes, int ano) {
    this.dia = dia;
    this.mes = mes;
    this.ano = ano;
  }
  String getDataFormatada() {
    return this.dia + "/" + this.mes + "/" + this.ano;
  }
} 
             
            