Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida na utilização de uma classe data no array de funcionários

boa noite, alguem poderia me ajudar?

criei a classe Funcionário com as características dos funcionários que serão guardados no array de funcionários, que esta na classe Empresa.

A classe Funcionario referencia a classe Data

class Funcionario {
    String nome;
    int  matricula;
     String rg;
    double salario;
    Data diaFormatado;
    String cargo;
String departamento;

class Data {
     int  dia;
     int mes;
        int ano;  


void recebeData(int diaRecebido, int mesRecebido, int anoRecebido) {
    this.dia =  diaRecebido;
    this.mes =  mesRecebido;
    this.ano =  anoRecebido;  

}

class Empresa {
    String nomeEmpresa; 
    int  cnpj;
    String endereco;
    Funcionario[] funcionarios;
    int b; 
}

consegui atribuir todos os dados para os funcionários do array através de um for, porem no método de impressão do array, a data do funcionário é mostrada como algo que parece ser endereçamento de memória, exemplo : Data@e7858922

segue a atribuição dos datos e o método de impressão dos dados, os demais dados como nome cargo, etc foram impressos sem problemas :

           for (int cont = 0; cont < 5; cont++) {
                Funcionario func = new Funcionario();
                func.nome = "pedro" ; 
                func.salario = 1000 + cont * 10;
                func.rg  = ("10-A" + limite);
                func.diaFormatado  = new Data(); 
                 func.diaFormatado.recebeData(01,02,2016);   
                func.cargo = "programador java junior"; 
                func.departamento = "departamento java";
                empteste.addFuncs(func);
                limite++;                
           }

método de impressão, declarado na classe empresa

    void imprimeFuncs (int limite) {

    for (int i = 0; i <  limite; i++) {

         System.out.println("funcionario: " + this.funcionarios[i].nome );
         System.out.println("matricula: " + this.funcionarios[i].matricula );
         System.out.println("rg:  " + this.funcionarios[i].rg );
         System.out.println("salario:  " + this.funcionarios[i].salario);
         System.out.println("admissao:  " + this.funcionarios[i].diaFormatado);
        System.out.println("cargo:  " + this.funcionarios[i].cargo);
         System.out.println("dpto:  " + this.funcionarios[i].departamento);
1 resposta
solução!

Olá Debora, realmente o que está imprimindo é o endereço de memória. Para o que você está tentando fazer, é necessário reescrever o método toString() dentro da sua classe Data. Segue um exemplo:

@Override
    public String toString() {
        return "Dia: " + dia + " - Mes: " + mes + " - Ano: " + ano;
    }