Meu programa na hora de imprimir a data ele imprime o endereço de memória!
class Data {
    int dia;
    int mes;
    int ano;
    void preencheData (int _dia, int _mes, int _ano){
        this.dia=_dia;
        this.mes=_mes;
        this.ano=_ano;
    }
}
class Funcionario {
    String nome;
    String departamento;
    double salario;
    Data dataDeEntrada;
    void recebeAumento(double Aumento){
        this.salario = salario+Aumento;
    }
    double calculoGanhoAnual(){
        return this.salario * 12;
    }
    void quantidadeDeErros(int Erros){
        if (Erros>=12){
            System.out.println("Está demitido");
        }else{
            System.out.println("Está de boas");
        }
    }
    void mostra(){
        System.out.println("nome: "+this.nome);
        System.out.println("Departamento: "+this.departamento);
        System.out.println("Salario: "+this.salario);
        System.out.println("Data: "+dataDeEntrada);
    }
}
public class demoTeste {
    public static void main(String[] args) {
       Funcionario f1 = new Funcionario();
       f1.nome="Jayme";
       f1.departamento="RH";
       f1.salario=2121.0;
       f1.dataDeEntrada=new Data();
       f1.dataDeEntrada.preencheData(1,7,2009);
       f1.mostra();
       System.out.println(f1.calculoGanhoAnual());
       f1.quantidadeDeErros(13);
    }
} 
             
             
             
            