java – I have an error that I can't identify in println


These are my classes but the error still occurs:

Exception in thread "main" java.lang.NullPointerException at employee20.Main.main( /home/lucas/.cache/netbeans/8.1/executor-snippets/run.xml:53: Java returned: 1 BUILD FAILED (total time: 0 seconds) Follow my code:

Classe Principal:

public class Principal {

    public static void main(String[] args) {

        Funcionario lucas = new Funcionario();
        lucas.setEndereco("Rua Frei Caneca");

        lucas.pessoa = new Pessoa();
        lucas.pessoa.setNome("Lucas Alves Cardoso de Jesus");





Official Class

public class Funcionario {

    private String NomeDoDepartamento;
    private double Salario;
    private double anual;
    private String EstadoCivil;
    private String Endereco;
    int proximo = 0;
    Pessoa pessoa;
    Data data;

    //get obter set mudar

    public String getNomeDoDepartamento(){
        return this.NomeDoDepartamento;

    public void setNomeDoDepartamento(String nomedepartamento){
        this.NomeDoDepartamento = nomedepartamento;

    public double getSalario(){
        return this.Salario;

    public void setSalario (double salario){
        this.Salario = salario;

    public double getAnual(){
        return this.Salario*12;

    public String getEstadoCivil(){
        return this.EstadoCivil;

    public void setEstadoCivil(String estadocivil){
        this.EstadoCivil = estadocivil;

    public String getEndereco(){
        return this.Endereco;

    public void setEndereco (String endereco){
        this.Endereco = endereco;



You didn't set the data property before line 16 of your main class: = new Data();;

Other than that I have at least 2 tips to give you:

1) Use the constructor to set new objects or create auxiliary constructors:

public Funcionario() {
  this.pessoa = new Pessoa(); = new Data();


public Funcionario(){} // construtor padrão

public Funcionario(Pessoa pessoa) {
  this.pessoa = pessoa;
public Funcionario(Data data) { = data;
public Funcionario(Pessoa pessoa, Data data) {
  this.pessoa = pessoa; = data;

Thus allowing:

Funcionario funcionario = new Funcionario(); 
// funcionário padrão, sem Pessoa e Data

Funcionario funcionario = new Funcionario(new Pessoa()); 
// funcionário com Pessoa e sem Data

Funcionario funcionario = new Funcionario(new Data()); 
// funcionário sem Pessoa e com Data

Funcionario funcionario = new Funcionario(new Pessoa(), new Data); 
// funcionário com Pessoa e Data

2) Do not use direct access to these properties, always use setters and getters :

public Pessoa getPessoa() {
  return this.pessoa;

public void setPessoa(Pessoa pessoa) {
  this.pessoa = pessoa;
Scroll to Top