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

Data sendo exibida como hexa em classe composta

class Data {

int dia; int mes; int ano; }

class Funcionario {

String nome; String departamento; double salario; Data dataDeEntrada = new Data(); String RG;

void recebeAumento(double porcentagem){ this.salario *= porcentagem; }

void ganhoAnual(){ this.salario*=12; }

void mostra(){ System.out.println("Nome = "+this.nome); System.out.println("Departamento = "+this.departamento); System.out.println("Salario = " +this.salario); System.out.println("Admissao = " +this.dataDeEntrada); System.out.println("DOC = " +this.RG);

} }

class Teste {

public static void main(String [] args){ Funcionario eduardo; eduardo = new Funcionario();

eduardo.nome = "Eduardo Ungaratto"; eduardo.departamento = "SW"; eduardo.salario = 1999; eduardo.dataDeEntrada.dia = 8; eduardo.dataDeEntrada.mes = 5; eduardo.dataDeEntrada.ano = 2015; eduardo.RG = "123456789";

eduardo.mostra(); eduardo.recebeAumento(1.20); System.out.println("Salario com aumento = " + eduardo.salario); System.out.println("");

Funcionario janete; janete = new Funcionario();

janete.nome = "Janete Ungaratto"; janete.departamento = "Comercial"; janete.salario = 4000; janete.dataDeEntrada.dia = 1; janete.dataDeEntrada.mes = 5; janete.dataDeEntrada.ano = 2005; janete.RG = "12348798";

janete.mostra(); janete.recebeAumento(1.20); janete.ganhoAnual(); System.out.println("Salario com aumento = "+ janete.salario); System.out.println("");

if (eduardo == janete) { System.out.println("Sao iguais"); } else { System.out.println("Sao diferentes"); }

} }

E meu codigo esta dando essa saida com a data Admissao = Data@19e0bfd

3 respostas
solução!

Consegui corrigir, o problema é que quando mando isto:

System.out.println("Admissao = " +this.dataDeEntrada)

Ele retorna o valor da referencia do objeto dataDeEntrada que é criado sempre que se instancia um novo referencia\objeto de funcionario.

A solução foi esta:

System.out.println("Admissao = "

  • this.dataDeEntrada.dia
    • this.dataDeEntrada.mes
    • this.dataDeEntrada.ano);

Isto me retorna o valor de cada atributo da referencia composta em Funcionario para Data:

class Data {

int dia = 0; int mes = 0; int ano = 0; } class Funcionario {

String nome; String departamento; double salario; Data dataDeEntrada = new Data(); String RG;

Por favor, me corrijam se estiver errado, opinem e etc...

Correto!

Obrigado :)