Boa tarde, não consigo compilar o meu programa por causa de um erro(à princípio) em um dos métodos. Alguém pode verificar aonde que está errado?
ai está a bagaça:
public class Empresa {
private String nome;
private int cnpj;
Funcionario funcionario;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setcnpj(int cnpj) {
this.cnpj = cnpj;
}
public int getcnpj() {
return cnpj;
}
public void imprimeDesenvolvedor(){
for(int i = 0; i < this.funcionario.desenvolvedor.length; i++){
Desenvolvedor d = this.funcionario.desenvolvedor[i];
if(d == null); continue;
System.out.println("Desenvolvedor: " + d.pessoal.getNome());
System.out.println("Departamento: " + d.departamento);
System.out.println("Salário: R$" + d.getSalario());
System.out.println("------------------------------------------ ");
}
}
}
abstract class Funcionario {
private double salario;
String departamento;
int iscriçao;
DadosPessoais pessoal;
Data dataDeEntrada;
Gerente[] gerente;
Desenvolvedor[] desenvolvedor;
public void setSalario(double salario) {
this.salario = salario;
}
public double getSalario() {
return salario;
}
public void setAumento(double valorAumento) {
this.salario += valorAumento;
}
public void ganhoAnual() {
double cash = this.salario;
System.out.println(cash *= 12);
}
}
class Gerente extends Funcionario {
public Gerente(int inscriçao) {
this.iscriçao = inscriçao;
}
}
class Desenvolvedor extends Funcionario {
public Desenvolvedor(int inscriçao) {
this.iscriçao = inscriçao;
}
}
class DadosPessoais {
String nome;
String dataDeNascimento;
int rg;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
class Data {
int dia;
int mes;
int ano;
public void setData(int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public String getData() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class TestaEmpresa {
public static void main(String[] args) {
Empresa genos = new Empresa();
genos.setNome("Genos Corp.");
genos.setcnpj(987654321);
/**************************************************************************************/
genos.funcionario.gerente = new Gerente[04];
/*===============================================================*/
genos.funcionario.gerente[0] = new Gerente(123);
genos.funcionario.gerente[0].setSalario(3_500.0);
genos.funcionario.gerente[0].setAumento(250.0);
genos.funcionario.gerente[0].departamento = "Criação";
/*===============================================================*/
genos.funcionario.gerente[0].pessoal = new DadosPessoais();
genos.funcionario.gerente[0].pessoal.nome = "Baltazar Tidat";
genos.funcionario.gerente[0].pessoal.dataDeNascimento = "03/07/1985";
genos.funcionario.gerente[0].pessoal.rg = 587964231;
/*===============================================================*/
genos.funcionario.gerente[0].dataDeEntrada = new Data();
genos.funcionario.gerente[0].dataDeEntrada.setData(05, 11, 2012);
/**************************************************************************************/
genos.funcionario.desenvolvedor = new Desenvolvedor[10];
/*===============================================================*/
genos.funcionario.desenvolvedor[0] = new Desenvolvedor(456);
genos.funcionario.desenvolvedor[0].setSalario(2_250.0);
genos.funcionario.desenvolvedor[0].setAumento(130.0);
genos.funcionario.desenvolvedor[0].departamento = "Jogos Digitais";
/*===============================================================*/
genos.funcionario.desenvolvedor[0].pessoal = new DadosPessoais();
genos.funcionario.desenvolvedor[0].pessoal.nome = "Julieu Romieleta";
genos.funcionario.desenvolvedor[0].pessoal.dataDeNascimento = "01/04/1987";
genos.funcionario.desenvolvedor[0].pessoal.rg = 123546987;
/*===============================================================*/
genos.funcionario.desenvolvedor[0].dataDeEntrada = new Data();
genos.funcionario.desenvolvedor[0].dataDeEntrada.setData(05, 10, 2009);
/**************************************************************************************/
System.out.println("oi");
genos.imprimeDesenvolvedor();
}
}
E o erro:
Exception in thread "main" java.lang.NullPointerException
at Empresa2.TestaEmpresa.main(Empresa.java:127)