Boa noite!
Tenho 3 classes, uma de Funcionário:
class Funcionario {
private String nome;
private String departamento;
private double salario;
Data dataEntrada = new Data();
private boolean estaNaEmpresa = true;
private static int identificador;
public Funcionario() {
Funcionario.identificador = Funcionario.identificador + 1;
}
public double bonifica(double aumento) {
this.salario += aumento;
return salario;
}
public void demite() {
this.estaNaEmpresa = false;
}
public void mostra() {
System.out.println("Nome: " + getNome() + "\n" +
"Departamento: " + getDepartamento() + "\n" +
"Salario: " + getSalario() + "\n" +
"Data de entrada: " + this.dataEntrada.getDia() + "." + this.dataEntrada.getMes() + "." + this.dataEntrada.getAno() + "\n" +
"Esta na empresa? " + this.estaNaEmpresa + "\n" +
"Foram criados: " + getIdentificador() + " instancias da classe Funcionario!");
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getSalario() {
return this.salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
public void setDepartamento(String departamento) {
this.departamento = departamento;
}
public String getDepartamento() {
return this.departamento;
}
public int getIdentificador() {
return this.identificador;
}
public boolean isEstaNaEmpresa() {
return this.estaNaEmpresa;
}
public boolean setEstaNaEmpresa(boolean estaNaEmpresa) {
return this.estaNaEmpresa = estaNaEmpresa;
}
}
Uma de empresa:
class Empresa {
private String nome;
private String cnpj;
private Funcionario[] empregados;
public String getNome() {
return this.nome;
}
public String setNome(String nome) {
return this.nome = nome;
}
public String getCnpj() {
return this.cnpj;
}
public String setCnpj(String cnpj) {
return this.cnpj = cnpj;
}
public void setEmpregados(Funcionario f) {
int x = 0;
boolean cond = true;
while (cond == true) {
if (empregados[x] == null) {
this.empregados[x] = f;
cond = false;
} else {
x++;
}
}
}
public Funcionario getEmpregados (int posicao) {
return this.empregados[posicao];
}
public void contem(Funcionario f) {
if (f.isEstaNaEmpresa() == true) {
System.out.println("O funcionario esta na empresa!");
} else {
System.out.println("O funcionario nao esta na empresa!");
}
}
}
E uma para incluir dados e testar os dados da classe Empresa:
class TestaEmpresa {
public static void main (String[] args) {
Empresa empresa = new Empresa();
Funcionario f1 = new Funcionario();
f1.setSalario(500);
f1.setNome("Jorge");
f1.setEstaNaEmpresa(false);
f1.setDepartamento("Suporte");
f1.dataEntrada.setDia(01);
f1.dataEntrada.setMes(01);
f1.dataEntrada.setAno(2012);
empresa.setEmpregados(f1);
empresa.getEmpregados(0);
empresa.contem(f1);
}
}
O problema é que não estou conseguindo criar os métodos get e set da minha array da classe funcionários corretamente.
Da maneira que criei, ao executar a classe TestaEmpresa é exibido pela JVM um erro de NullPointerException. Alguém tem uma ideia de como eu poderia criar estes gets e sets?
Obs: Antes de adicionar um funcionário na classe preciso verificar qual posição da array está vazia e adicionar as informações nesta posição do array.
Obrigado.

