Olá pessoal! Me ajudem em uma questão por favor. Estou testando herança e composição de objeto, e fiz as seguintes classes: Pessoa, Funcionário e Endereço todas com seus métodos get e set. A classe endereço compõe a classe pessoa, pois toda pessoa "tem" um endereço, e a classe funcionário herdou as características da classe pessoa, pois todo funcionário "é" uma pessoa. Instanciei o objeto funcionário, usei os métodos para inserir o endereço para um funcionário, e na hora que tento imprimir no console, apresenta a seguinte mensagem:
" Exception in thread "main" java.lang.NullPointerException at TestaFuncionario.main(TestaFuncionario.java:8)"
Vocês poderiam me informar aonde que eu estou errando?
public class Pessoa {
private String nome;
private String cpf;
private int dataNascimento;
private Endereco endereco;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return this.nome;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCpf() {
return this.cpf;
}
public void setDataNascimento(int dataNascimento) {
this.dataNascimento = dataNascimento;
}
public int getDataNascimento() {
return this.dataNascimento;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public Endereco getEndereco() {
return this.endereco;
}
}
public class Funcionario extends Pessoa {
private double salario;
private double bonificacao;
}
public class Endereco {
private String endereco;
private int numero;
private String cep;
private String estado;
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getEndereco() {
return this.endereco;
}
public void setNumero(int numero) {
this.numero = numero;
}
public int getNumero() {
return this.numero;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getCep() {
return this.cep;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getEstado() {
return this.estado;
}
}
public class TestaFuncionario {
public static void main(String[] args) {
Funcionario funcionario = new Funcionario();
funcionario.getEndereco().setEndereco("Rua ABC");
System.out.println(funcionario.getEndereco().getEndereco());
}
}