programa não funciona porque da null pointer!
Exception in thread "main" java.lang.NullPointerException at programa03.Funcionario.setDataDeNascimento(Funcionario.java:65) at programa03.Programa.main(Programa.java:13)
public class Programa {
public static void main(String[] args) {
Empresa imagine = new Empresa();
imagine.funcionarios = new Funcionario[10];
Funcionario guilherme = new Funcionario ("Guilherme", "123.123.123-05");
imagine.adicionar(guilherme);
guilherme.setName("Guilherme de Carvalho Correia de Melo");
guilherme.setCPF("123.123.123-50");
guilherme.setDataDeNascimento(7, 5, 2000);
guilherme.setDataDeAdmissao(12, 1, 2017);
guilherme.setRG("12.132.123-55");
guilherme.setSalario(1000.0);
guilherme.setDepartamento("Tecnologia da Informação");
imagine.mostrarSalario();
imagine.mostraInformacoes();
boolean contem = imagine.contem(guilherme);
System.out.println(contem);
}
}
public class Funcionario {
private String nome;
private double salario;
private String cpf;
public Data dataDeNascimento;
private String rg;
private String departamento;
public Data dataDeAdmissao;
public Funcionario (String nomeConstrutor, String cpfConstrutor){
nome = nomeConstrutor;
cpf = cpfConstrutor;
}
//==============================================FUNÇÕES RELACIONADAS AO NOME==========================================\\
public String setName(String nomeMetodo){
this.nome = nomeMetodo;
return this.nome;
}
public String mostrarNome(){
return nome;
}
//==============================================FUNÇÕES RELACIONADAS AO SALARIO==========================================\\
public double setSalario (double valor){
this.salario = valor;
return this.salario;
}
void aumentaSalario (double valorASerAumentado){
this.salario += valorASerAumentado;
}
public double calculaGanhoAnual () {
double ganhoAnual = this.salario * 12;
return ganhoAnual;
}
public double mostrarSalario(){
return salario;
}
//==============================================FUNÇÕES RELACIONADAS AO CPF E RG==========================================\\
public String setCPF(String cpfMetodo){
cpf = cpfMetodo;
return cpf;
}
public String setRG(String rgMetodo){
rg = rgMetodo;
return rg;
}
//==============================================FUNÇÕES RELACIONADAS A DATAS==========================================\\
Funcionario(){
dataDeNascimento = new Data();
dataDeAdmissao = new Data ();
}
public Data setDataDeNascimento(int dia, int mes, int ano){
dataDeNascimento.preencheData(dia, mes, ano);
return dataDeNascimento;
}
public Data setDataDeAdmissao(int dia, int mes, int ano){
dataDeAdmissao.preencheData(dia, mes, ano);
return dataDeAdmissao;
}
//==============================================FUNÇÕES RELACIONADAS AO DEPARTAMENTO==========================================\\
public String setDepartamento (String departamentoMetodo){
this.departamento = departamentoMetodo;
return departamento;
}
//==============================================FUNÇÕES RELACIONADAS A MOSTRAR OS DADOS==========================================\\
void mostraDados () {
System.out.println("Nome: " + this.nome);
System.out.println("Data de Nascimento: " + this.dataDeNascimento.mostraData());
System.out.println("CPF: " + this.cpf);
System.out.println("RG: " + this.rg);
System.out.println("Departamento: " + this.departamento);
System.out.println("Data de Admissão: " + this.dataDeAdmissao.mostraData());
System.out.println("Salario: " + this.salario);
}
}
public class Data {
int dia;
int mes;
int ano;
public void preencheData (int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String mostraData () {
String data = this.dia + "/" + this.mes + "/" + this.ano;
return data;
}
}
package programa03;
public class Empresa {
String nome;
String cnpj;
Funcionario[] funcionarios;
int i = 0;
void adicionar(Funcionario f) {
if(funcionarios[i]==null){
this.funcionarios[i]=f;
i++;
}
}
void mostrarSalario() {
for(int i = 0; i<funcionarios.length;i++){
if(funcionarios[i]!=null){
System.out.println(this.funcionarios[i].mostrarNome() +": "+ this.funcionarios[i].mostrarSalario());
System.out.println("======================================");
}
}
}
void mostraInformacoes(){
for(int i = 0; i<funcionarios.length;i++){
if(funcionarios[i]!=null){
funcionarios[i].mostraDados();
System.out.println("======================================");
}
}
}
boolean contem (Funcionario f) {
for(int i = 0; i<funcionarios.length; i++){
if (f==this.funcionarios[i]){
return true;
}
}
return false;
}
}