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

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

Obs. estou fazendo via eclipse. Eu consegui fazer esse exercício, porém na classe principal eu instanciei um novo objeto de data, fazendo dessa forma, deixando como uma variável do tipo data em funcionário, o meu deu a seguinte exceção -- java.lang.NullPointerException

segue abaixo o código de cada classe

package Aula03;

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

        //declaração de f1
        f1.nome = "Thiago Crystyan";
        f1.departamento = "TI";
        f1.cpf = "954.030.603-59";
        f1.dt_ini = "05/02/2014";
        f1.salario = 9870.89;
        f1.dta.setaData(05, 02, 2014);
        //f1.recebeAumento(300);

        Funcionario f2 = f1;

        f1.mostra();
        f2.mostra();

        if( f1 == f2)
            System.out.println("Funcionários duplicados");
        else
            System.out.println("Funcionários distintos");

    }

}

package Aula03;

public class Funcionario 
{
    String nome, departamento, dt_ini, cpf;
    double salario;
    Data dta;

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

    double salAnual()
    {
        return this.salario * 12;

    }

    void mostra()
    {
        System.out.println("***Os dados do Funcionário são***");
        System.out.println("Nome         - "+this.nome);
        System.out.println("Data inicio  - "+this.dt_ini);
        System.out.println("Departamento - "+this.departamento);
        System.out.println("Cpf          - "+this.cpf);
        System.out.println("Salario      - R$"+this.salario);
        System.out.println("Valor anual  - R$"+this.salAnual());
        System.out.println("======================================\n");
    }


}

package Aula03;

public class Data
{

    String setaData(int dia, int mes, int ano)
    {
        return dia+"/"+mes+"/"+ano;
    }



}
3 respostas
solução!

Thiago, Bom dia !

o erro que em nenhum do momento em seu código você está inicializando a variável dta .

no caso , na classe Funcionário , você teria que fazer o o seguinte comando .

Data dta = new Data();

neste caso , funcionará seu código .

Espero ter ajudado , Bons Estudos

Muito obrigado Celso, deu certo sim...

não me faz muito sentido essa parte:

f1.dt_ini = "05/02/2014"; // ... f1.dta.setaData(05, 02, 2014);

porque guardar os mesmos dados em duas variáveis diferentes? gostaria guardar, neste caso, na variável setaData e através dela imprimir também. como que faço isso?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software