Acho que estou errando em não instanciar a classe Data, mas não sei onde faço isso. Já tentei colocar direto no método
public void setDataDeAdimissao(int dia, int mes, int ano){
Data dataEntradas = new Data();
this.dataDeAdmissao.setPreencheData(dia, mes, ano);
}
ou até mesmo instanciar na classe que tem o main, mas continua retornando o NullPointer.
Segue minhas classes para ver se vocês conseguem me ajudar:
public class Data {
private int dia;
private int mes;
private int ano;
public void setPreencheData(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public String getFormatada(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
public class Funcionario {
private double salario;
private String nome;
private String cpf;
private Data dataDeAdmissao;
public double getSalario(){
return this.salario;
}
public void setSalario(double salario){
this.salario = salario;
}
public String getNome(){
return this.nome;
}
public void setNome(String nome){
this.nome = nome;
}
public String getCpf(){
return this.getCpf();
}
public void setCpf(String cpf){
this.cpf = cpf;
}
public double getGanhoAnual(){
return this.salario * 12;
}
public Data getDataDeAdmissao(){
return this.dataDeAdmissao;
}
public void setDataDeAdimissao(int dia, int mes, int ano){
this.dataDeAdmissao.setPreencheData(dia, mes, ano);
}
public String getInfo(){
return "Nome: " + this.nome + System.lineSeparator() +
"CPF: " + this.cpf + System.lineSeparator() +
"Salario: " + this.salario + System.lineSeparator() +
"Data de Admissão: " + this.dataDeAdmissao + System.lineSeparator() +
"Ganho anual: " + getGanhoAnual() + System.lineSeparator();
}
}
public class TesteFuncionario {
/**
* @param args
*/
public static void main(String[] args) {
Funcionario diego = new Funcionario();
diego.setNome("Diego");
diego.setCpf("123456789");
diego.setDataDeAdimissao(5, 6, 2017);
diego.setSalario(3000);
System.out.println(diego.getInfo());
}
}