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

Dúvida no Ex. 3 da Aula 4 - Arrays

Nas ultimas linhas, em empresa.empregados[0].calculaGanhoAtual(); Nada acontece e quanto troco para mostra(); aparece o seguinte erro : Exception in thread "main" java.lang.NullPointerException at Funcionario.mostra(Programa.java:32) at TesteEmpresa.main(Programa.java:85)

class Empresa
{

    String nome;
    String cnpj;
    Funcionario[] empregados;

    int livre = 0;

    void adiciona(Funcionario f){
        this.empregados[this.livre] = f;
        this.livre ++;
    }


}

class Funcionario
{

    Pessoa pessoa;
    String departamento;
    double salario;

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

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

    void mostra(){
        pessoa.mostra();
        System.out.println("Departamento: "+this.departamento);
        System.out.println("Salário: "+this.salario);
    }

}

class Pessoa
{

    String nome;
    String rg;
    Data entrada;

    void mostra(){
        System.out.println("Nome: "+this.nome);
        System.out.println("RG: "+this.rg);
        entrada.mostra();
    }

}

class Data
{

    int dia;
    int mes;
    int ano;

    void preencheData(int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    void mostra(){
        System.out.println(dia + "/" + mes + "/" + ano);
    }

}

class TesteEmpresa
{

    public static void main(String[] args) 
    {
        Empresa empresa = new Empresa();
        empresa.empregados = new Funcionario[10];

        Funcionario igor = new Funcionario();
        igor.salario = 1000.00;
        empresa.adiciona(igor);

        Funcionario renan = new Funcionario();
        renan.salario = 2000.00;
        empresa.adiciona(renan);

        empresa.empregados[0].calculaGanhoAnual();

    }
}
3 respostas

Resolvido.

Igor, Boa tarde !!

conseguiu resolver , o que acontece é que em nenhum momento você está inicializando a o atributo pessoa, por isso que está dando esse erro !!

ja está que resolveu , o que você fez para resolver ?

solução!

Justamente ! Percebi que não estava inicializando pessoa.

Funcionario renan = new Funcionario(); renan.pessoa = new Pessoa(); renan.pessoa.entrada = new Data(); renan.pessoa.nome = "Renan Costa"; renan.pessoa.entrada.preencheData(05,04,2020); renan.pessoa.rg = "4.286.028"; renan.departamento = "Business and development"; renan.salario = 5900.00; empresa.adiciona(renan);