Pessoal, alguém consegue me ajudar? Não sei o que acontece aqui. Segue meu código:
// Empresa
class Empresa {
String nomeEmpresa;
String cnpj;
String endereco;
Funcionario[] empregados;
int livre = 0;
// Adiciona Funcionário
void adiciona ( Funcionario f ) {
this.empregados[ this.livre ] = f;
this.livre ++;
}
}
// Funcionário
class Funcionario {
Pessoa pessoa;
String departamento;
double salario;
Data dataEntrada;
void recebeAumento ( double aumento ) {
this.salario += aumento;
}
double calculaGanhoAnual () {
return this.salario*12;
}
double calculaInss() {
return this.salario*0.11;
}
double calculaIrrf() {
return this.salario*0.15-this.calculaInss();
}
double calculaSalarioComDescontos() {
return this.salario-this.calculaInss()-this.calculaIrrf();
}
void mostra() {
pessoa.mostra();
System.out.println( "Departamento : " + this.departamento );
System.out.println( "Salário Bruto: " + this.salario );
dataEntrada.mostra();
System.out.println( "----------------------" );
}
}
// Pessoa
class Pessoa {
String nome;
String rg;
void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("RG: " + this.rg);
}
}
// Data
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;
}
void mostra() {
System.out.println( "Data de Admissão: " + dia + "/" + mes + "/" + ano );
}
}
// Testa Empresa
class testeEmpresa {
public static void main ( String[] args ) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[ 20 ];
Funcionario f1 = new Funcionario();
f1.pessoa = new Pessoa();
f1.pessoa.nome = "Funcionário 01";
f1.pessoa.rg = "11223344";
f1.dataEntrada = new Data();
f1.dataEntrada.preencheData ( 10, 12, 2013 );
f1.salario = 3000.00;
f1.departamento = "Cobrança";
empresa.adiciona( f1 );
Funcionario f2 = new Funcionario();
f2.pessoa = new Pessoa();
f2.pessoa.nome = "Funcionário 02";
f2.pessoa.rg = "22334455";
f2.dataEntrada = new Data();
f2.dataEntrada.preencheData ( 15, 9, 2011 );
f2.salario = 4000.00;
f2.departamento = "Design";
empresa.adiciona( f2 );
for ( int i = 0; i < empresa.empregados.length; i++ ) {
empresa.empregados[i].mostra();
}
}
}
Quando mando rodar o testeEmpresa, dá o seguinte erro:
Antonios-MacBook-Pro:Curso Java neto$ java testeEmpresa
Nome: Funcionário 01
RG: 11223344
Departamento : Cobrança
Salário Bruto: 3000.0
Data de Admissão: 10/12/2013
----------------------
Nome: Funcionário 02
RG: 22334455
Departamento : Design
Salário Bruto: 4000.0
Data de Admissão: 15/9/2011
----------------------
Exception in thread "main" java.lang.NullPointerException
at testeEmpresa.main(empresa.java:108)
Obrigado!!!