Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 1 da Aula 3 - Começando com Orientação a objetos

Olá, compilei o meu código "Funcionario.java". Porém quando mando rodar o arquivo "testa.class", usando o comando no terminal "java testa" da a seguinte mensagem: Exception in thread "main" java.lang.NullPointerException at testa.main(Funcionario.java:29)

Segue o meu código:

class Funcionario{
    int departamento;
    double salario;
    String dataEntrada;
    Pessoa pessoa;

    void recebeAumento(double novoSalario){
        this.salario = novoSalario;
    }

    double calculaGanhoAnual() {
        return this.salario * 12;    
    }
}

class Pessoa {
    String nome;
    String RG;
    String cpf;
    String dataNascimento;
}

class testa{

    public static void main(String[] args){
        Funcionario marko = new Funcionario();
        Pessoa pessoa = new Pessoa();

        marko.pessoa.nome = "Marko Aurelio";
        marko.departamento = 01;
        marko.salario = 1100.0;

        System.out.println(marko.pessoa.nome);

        System.out.println("Ganho anual: " + marko.calculaGanhoAnual());

    }
}
2 respostas

Olá Marko, tudo bem? Analisando o código no seu método main acredito que seu erro encontra-se provavelmente no momento de instanciar o objeto Pessoa.

public static void main(String[] args){ Funcionario marko = new Funcionario();

// Aqui você instancia um novo objeto do tipo Pessoa porém não o //objeto que faz parte do objeto Marko (Classe Funcionário) Pessoa pessoa = new Pessoa();

//Creio que o correto seja acrescentar a linha abaixo. // Essa linha irá instanciar o objeto pessoa que esta contido no // objeto marko

marko.pessoa = new Pessoa(); marko.pessoa.nome = "Marko Aurelio"; marko.departamento = 01; marko.salario = 1100.0;

System.out.println(marko.pessoa.nome);

System.out.println("Ganho anual: " + marko.calculaGanhoAnual());

}

solução!

Realmente foi isso mesmo que aconteceu, arrumei para:

Funcionario f1 = new Funcionario();
        f1.pessoa = new Pessoa();

e corrigiu. Valew, Guilherme!