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;
}
}