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

Minha data esta saindo como null, o q estou fazendo de errado!?

class Funcionario6{ String nome; String funcao; Data dataEntrada;

void mostra(){ System.out.println(nome); System.out.println(funcao); System.out.println(dataEntrada);

} } class Data{ int dia; int mes; int ano;

void formataData(int dia, int mes, int ano){ dia=dia; mes=mes; ano=ano;

} } class Teste{ public static void main(String[] args){ Funcionario6 Jaqueline = new Funcionario6(); Jaqueline.nome = "Jaqueline Mendes"; Jaqueline.funcao = "Esteticista";

Jaqueline.mostra();

Data dataEntrada = new Data(); Jaqueline.dataEntrada = dataEntrada; Jaqueline.dataEntrada.formataData(5,9,1995);

} }

4 respostas
solução!

Oi, Janayna

A sua chamada ao método mostra() está sendo feita antes de você definir a variável dataEntrada.

Nesse caso, basta colocar a chamada mostra() no fim do método main.

Boa Hugo!!

mais a data vai sair nesse formato msm!? Data@161cd475

Janayna, Esse valor que saiu é a referência na memória da variável.

Para imprimir num valor amigável, você tem duas opções:

1) Implementar uma função de formatar a data antes de imprimir. No caso, +- assim:

public String imprimirData() {
    return this.dia + "/" + this.mes + "/" + this.ano
}

E fazer a chamada nessa função, ao invés de chamar o objeto diretamente.

System.out.println(dataEntrada.imprimirData())

2) A outra opção envolve a sobreescrita do método toString(), que é justamente o método padrão chamado por um objeto ao ser incluso dentro de um System.out.

No caso, ficaria:

public String toString() {
        return this.dia + "/" + this.mes + "/" + this.ano
    }

Nesse caso, não precisaria alterar a chamada do método dentro do System.out.