Boa tarde pessoal gostaria de saber porque a data retorna nesse formato Data@1b2f5f0d, alguem sabe como retornar da maneira certa ????
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!