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

erro Java I

boa noite,

estou praticando os exercícios do Java, mas esta dando erro. criei uma classe de Funcionario, TesteFuncionario e Data.... copilei tudo e deu certinho. segue resultado no Funcionario 2 não coloque valores na data para que ele retorne o dia = 0, mes = 0, e ano =0.


Funcionario:Thiago
salario atual:150.0
Salario Anual:1800.0
Dia: 1
Mês: 7
Ano: 2009
Funcionario:Ariane
salario atual:150.0
Salario Anual:1800.0
Exception in thread "main" java.lang.NullPointerException
        at Funcionario.mostra(Funcionario.java:27)
        at testeFuncionario.main(testeFuncionario.java:20)
3 respostas

Boa Noite Thiago, tudo bem?

Poderia enviar os códigos do seu exercicio?

Obrigado

posso sim.

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; } }


class Funcionario {

String nomeFuncionario; String departamento; double salario; Data dataDeEntrada; String rg;

void recebeAumento(double valor){

this.salario += valor ; }

double calculaGanhoAnual (){

return this.salario * 12; }

void mostra(){

System.out.println("Funcionario:" + this.nomeFuncionario); System.out.println("salario atual:" + this.salario); System.out.println("Salario Anual:" + this.calculaGanhoAnual()); System.out.println("Dia: " + this.dataDeEntrada.dia); System.out.println("Mês: " + this.dataDeEntrada.mes); System.out.println("Ano: " + this.dataDeEntrada.ano);

}

}


class testeFuncionario {

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

f1.nomeFuncionario = "Thiago"; f1.salario = 100; f1.recebeAumento(50); f1.dataDeEntrada = new Data(); f1.dataDeEntrada.preencheData(1, 7, 2009); f1.mostra();

Funcionario f2 = new Funcionario();

f2.nomeFuncionario = "Ariane"; f2.salario = 100; f2.recebeAumento(50); f2.mostra();

} }

solução!

Olá prezados, o seu objeto data do objeto f2 não foi inicializado, antes da chamada do método f2.mostra() insira o seguinte código f2.dataDeEntrada = new Data();

segue a classe corrigida

class TesteFuncionario {

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

        f1.nomeFuncionario = "Thiago"; 
        f1.salario = 100; 
        f1.recebeAumento(50); 
        f1.dataDeEntrada = new Data(); 
        f1.dataDeEntrada.preencheData(1, 7, 2009); 
        f1.mostra();

        Funcionario f2 = new Funcionario();

        f2.nomeFuncionario = "Ariane"; 
        f2.salario = 100; 
        f2.recebeAumento(50); 
        f2.dataDeEntrada = new Data(); 
        f2.mostra();

    } 
}