Utilizando o prompt de comando as classes são compiladas, exceto a que contém o main, na qual aparece a mensagem: "Exception in thread "main" java.lang.NullPointerException at TestaFuncionarioEmp.main(TestaFuncionarioEmp.java:21)".
Não sei se é com relação ao parâmetro da data o erro, pois não consegui inserir valor para ela apresentar para o funcionário com vetor.
--< Classe TestaFuncionarioEmp.java
class TestaFuncionarioEmp{
public static void main(String[] args) {
Empresa f1 = new Empresa();
f1.funcionarios = new FuncionarioEmpresa[3];
f1.dataDeEntrada = new Data ();
//Data dataDeEntrada = new Data();
f1.funcionarios[0] = new FuncionarioEmpresa();
f1.funcionarios[0].nome = "Golias Adalberto Alves";
f1.funcionarios[0].dataDeEntrada.preencheData(05,10,2017);
f1.funcionarios[0].departamento = "Testes";
f1.funcionarios[0].rg = "26.104.65-X";
f1.funcionarios[0].salario = 100.00;
f1.funcionarios[0].recebeAumento(50);
f1.imprimeEmpresa();
}
}
--< Classe FuncionarioEmpresa.java
class Empresa{
String nome;
String cnpj;
FuncionarioEmpresa[] funcionarios;
void imprimeEmpresa(){
for(int i=0; i< this.funcionarios.length; i++){
FuncionarioEmpresa funcionario = this.funcionarios[i];
if(funcionario==null) continue;
System.out.println("Nome do Funcionário................> " + funcionario.nome);
System.out.println("Data da entrada do funcionário.> " + funcionario.dataDeEntrada.mostraData());
}
}
}
class FuncionarioEmpresa{
String nome;
String departamento;
double salario;
String rg;
Data dataDeEntrada;
void recebeAumento (double aumento){
this.salario+= aumento;
}
double calculaGanhoAnual(){
return this.salario * 12;
}
}
class Data{
int dia, mes, ano;
void preencheData (int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String mostraData(){
return this.dia+"/"+this.mes+"/"+this.ano;
}
}