Boa tarde pessoal gostaria de saber porque a data retorna nesse formato Data@1b2f5f0d, alguem sabe como retornar da maneira certa ????
Boa tarde pessoal gostaria de saber porque a data retorna nesse formato Data@1b2f5f0d, alguem sabe como retornar da maneira certa ????
Julian , Bom dia !
quando imprime a data , ela pega o método do toString da classe Object . e por isso que a impressão sai desse jeito .
Em java toda classe é filha de Object , mesmo você não mostrando que ela é filha de Object .
logo você pode sobre escrever o método toString na classe Data , assim quando imprimir , será impresso correto .
você poderia fazer o seguinte :
public String toString() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
assim retornará o formato correto .
espero ter ajudado ,
Bons estudos
Você deve ter implementado a função mostra da seguinte forma:
void mostra() {
System.out.println(dataDeEntrada);
}
Neste caso a função println está tratando o parâmetro dataDeEntrada como um objeto do tipo Object. Desta forma a implementação do comando println utiliza a função dataDeEntrada.toString, que retorna uma representação textual do objeto. (Data representa o nome da classe e 1b2f5f0d é o hash do objeto).
A função mostra deveria ser implementada desta forma para mostrar o valor correto:
void mostra() {
System.out.println("Data de entrada: " + dataDeEntrada.dia + "/" + dataDeEntrada.mes + "/" + dataDeEntrada.ano);
}
Estava com o mesmo problema e o Matheus resolveu!