class Funcionario {
//--<Atributos>--
int id;
String nome;
double salario;
Data dataAdmissao;
Data dataDemissao;
int departamento;
int setor;
int secao;
String rg;
String cpf;
String situacao;
//--< Metodos >--
void recebeAumento(double aumento) {
this.salario += aumento;
}
double calculaGanhoAnual() {
return(this.salario * 12);
}
void demitirFuncionario(){
this.situacao = "I";
//this.dataDemissao = "28/12/2016";
}
void admitirFuncionario(){
this.situacao = "A";
//this.dataAdmissao = "28/12/2016";
}
String getDataFormatada(Data dataAdmissao ){
return(dataAdmissao.dia +"/"+dataAdmissao.mes+"/"+dataAdmissao.ano);
}
void mostra(){
System.out.println("ID: " + this.id);
System.out.println("nome: " + this.nome);
System.out.println("Salario: " + this.salario);
//System.out.println("Data Admissao: " + this.dataAdmissao);
System.out.println("Dia : " + this.dataAdmissao.dia);
System.out.println("Mes : " + this.dataAdmissao.mes);
System.out.println("Ano : " + this.dataAdmissao.ano);
System.out.println("Data Demissao: " + this.dataDemissao);
System.out.println("Departamento: " + this.departamento);
System.out.println("Setor: " + this.setor);
System.out.println("Secao: " + this.secao);
System.out.println("RG: " + this.rg);
System.out.println("CPF: " + this.cpf);
System.out.println("Situacao: " + this.situacao);
}
}
class Empresa{
int id;
String nome;
String cnpj;
Funcionario [] empregados;
int livre;
void adicionar(Funcionario f ){
this.empregados[this.livre] = f;
this.livre++;
}
}
class TestaEmpresa{
public static void main(String [] Args){
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
for (int i=1; i<=10; i++){
Funcionario f1 = new Funcionario();
f1.id = i;
f1.salario = (i * 1000);
empresa.adicionar(f1);
}
for ( Funcionario x : empresa.empregados){
System.out.println( "Empregado ID: " + x.id + " Salario: " + x.salario);
}
//for (Funcionario y : empresa.empregados ){
// y.mostra();
//}
for ( int i = 1 ; i<=10; i++){
empresa.empregados[i].mostra();
}
}
}
Neste último For ocorre o nullPointerException, entendo que o erro ocorre por fazer referência a um índice de array inválido , mas quando listo empresa.empregado no For anterior o atributo empregados da classe Empresa está carregado.