Meu metodo mostra na classe funcionario possui a impressão da data. Ao chegar na parte de impressão da data dava o erro de NullPointer. Fiz um ajuste de tratamento no método mostra() e não obtive problemas.
segue codigo:
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 getFormatada(){
return this.dia+"/"+this.mes+"/"+this.ano;
}
}
class Funcionario {
String nome;
String departamento;
double salario;
String rg;
double ganhoAnual;
Data dataAdmissao;
void recebeAumento(double percentualAummento){
this.salario *= (1+(percentualAummento/100));
}
double calculaGanhoAnual(){
this.ganhoAnual = this.salario * 12;
return this.ganhoAnual;
}
void mostra() {
calculaGanhoAnual();
System.out.println("Nome: " + this.nome);
System.out.println("Departamento: " + this.departamento);
System.out.println("Salario: " + this.salario);
System.out.println("Data de Admissão: "+ (this.dataAdmissao==null? "sem data ":this.dataAdmissao.getFormatada()));
System.out.println("RG: " + this.rg);
System.out.println("Ganho Anual: " + this.ganhoAnual);
}
}
class TestaEmpresa {
public static void main (String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
String[] nomesFuncs = {"Júlio","Aline","Heitor"};
double[] salarios = {100,200,50};
String[] departamentos = {"TRAB","CS","CS"};
for (int i = 0; i < 3; i++) {
empresa.empregados[i] = new Funcionario();
empresa.empregados[i].nome = nomesFuncs[i];
empresa.empregados[i].salario = salarios[i];
empresa.empregados[i].departamento = departamentos[i];
}
for (int i = 0; i < 3; i++) {
empresa.empregados[i].mostra();
}
}
}