Olá Jesilene! Há várias formas de você o preencheData() e o dataFormatada() e isso vai de acordo com cada desenvolvedor.
No meu caso, eu optei por fazer da seguinte forma:
Na minha classe Data eu criei dois métodos:
setData() e dataFormatada()
O método setData() recebe como parâmetro o dia, o mês e o ano que eu quero por nessa data. Enquanto o meu dataFormatada() me retorna uma String com a data no formato dd/MM/yyyy. Veja minha classe Data abaixo com os dois métodos:
class Data {
private int dia;
private int mes;
private int ano;
public void setData(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public String getFormatada(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
Na minha classe Funcionario possui o atributo dataDeEntrada que é uma variável de referencia à um objeto do tipo Data. Assim, eu criei dois métodos dentro de minha classe Funcionario: setDataDeEntrada() que é o preencheData() que você deseja e o getDataDeEntrada().
No método setDataDeEntrada() eu passo como parâmetro o dia, o mês e o ano da Data, então, eu instancio a Classe Data (Ou seja, crio um objeto do tipo Data) e atribuo ele ao atributo da minha classe o dataDeEntrada. Ja que esse meu atributo é um objeto da classe Data, então ele possui todos os métodos da classe Data, então dentro do método setDataDeEntrada(), através do atributo, eu chamo o método da minha classe Data, o setData() e adiciono os valores da minha Data. Veja só como fica:
public void setDataDeEntrada(int di, int m, int a){
this.dataDeEntrada = new Data();
this.dataDeEntrada.setData(di, m, a);
}
Ja para meu método getDataDeEntrada(), através do atributo dataDeEntrada da minha Classe Funcionario que é um objeto Data, eu chamo o método dataFormatada() da classe Data e retornando esse valor. Veja só como fica:
public String getDataDeEntrada(){
return this.dataDeEntrada.getFormatada();
}
Enfim, Espero ter ajudado. Qualquer coisa só perguntar. Bons Estudos!