Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 6 da Aula 3 - Começando com Orientação a objetos

Criei a classe data:

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

    void preenchaData(int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

}

na minha classe funcionario, alterei o tipo da minha variavel dataentrada:

class Funcionario {
    String nomeFuncionario;
    String departamento;
    double salario;
>>>    Data dataEntrada;
    String rg;
}

Porém quando eu executo o metodo "mostra" não aparece a data.

void mostra(){

        System.out.println("Data de Entrada: " + this.dataEntrada);

    }

Resultado:

Data de Entrada: Funcionario.Data@19e0bfd

Alguem consegue me ajudar?

5 respostas

Amigo, tá faltando código ai. Poste a classe aonde tem o método mostra(); No entanto pelo resultado, tá faltando sobrescrever o método toString() ou criar o objeto corretamente.

solução!

Amigo, na verdade no seu método mostra você não tá mostrando os outros atributos do seu método.

o seu método mostra tem que ficar assim:

void mostra(){
        System.out.println("Data de entrada: " + this.dataEntrada.dia + "/" + this.dataEntrada.mes + "/" + this.dataEntrada.ano);
    }

E a sua classe TestaFuncionário tem que ficar assim:

    public static void main(String[] args) {

            Funcionario f1 = new Funcionario();
            f1.dataEntrada = new Data();

            f1.dataEntrada.dia = 04;
            f1.dataEntrada.mes = 05;
            f1.dataEntrada.ano = 1994;
            f1.mostra();



        }

Abraços!

Oi Erick,

É exatamente como o Felipe falou, como vc mandou imprimir o próprio atributo dataEntrada, dentro só fica a referência para o objeto Data e não os dados do mesmo. Como vc quer que apareça o conteúdo dos campos, você precisa obtê-los um a um.

Abraço!

Obrigado amigos! Consegui!

Erick, por favor. Só solucione alguma resposta como solução para fechar o tópico! Abraços e bons estudos.