Olá Luis,
Na sua classe Funcionario
, o atributo dataDeEntrada
é do tipo Data
logo ele não é um dos tipos primitivos do Java. Lembre-se que qualquer variável que tenha um tipo primitivo guarda um valor, caso contrário, ela guarda uma referência para um objeto na memória.
O que acontece quando você pede para imprimir:
System.out.println ("Data de Entrada : " + this.dataDeEntrada);
é que o Java vai imprimir a referência para o objeto Data
que está guardado no atributo dataDeEntrada
.
Nesse caso, você possui algumas alternativas para imprimir a Data
, uma delas seria criar um método na classe Data
para imprimir a data formatada. Por exemplo:
class Data {
public void imprime() {
System.out.println(this.dia+"/"+this.mes+"/"+this.ano);
}
}
Aí quando você precisar imprimir a data basta substituir a linha:
System.out.println ("Data de Entrada : " + this.dataDeEntrada);
por
this.dataDeEntrada.imprime();