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

Formato de Saída da DATA

Amigos,

Alguem poderia me tirar uma dúvida. O meu script esta funcionando bem, o problema que o formato de saida da Data não esta legal.

O script resulta na Data de Entrada abaixo:

Data de Entrada: Exercícios.Data@15db9742

Alguem saberia me dizer como corrigir ?

package Exercícios;

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

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

class Funcionario_v2{
    String nome;
    String departamento;
    double salario;
    int RG;    
    Data dataDeEntrada;

    void recebeAumento(double valor){
        //double novoSalario= this.salario + valor;
        //this.salario = novoSalario;
        this.salario += valor;
    }

    double calculaGanhoAnual(){
        return 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("Data de Entrada: " + this.dataDeEntrada);
        System.out.println("RG: " + this.RG);
        System.out.println("Ganho Anual: " + this.calculaGanhoAnual());
    }
}

class Exercicio_02{
    public static void main(String[] args){
        Funcionario_v2 f1;
        f1 = new Funcionario_v2();
        f1.dataDeEntrada = new Data();

        f1.nome = "Vitor";
        f1.departamento = "TI";
        f1.salario = 500.0;
        f1.RG = 123456789;
        f1.dataDeEntrada.preencherData(10, 3, 2016);

        f1.mostra();

    }        
}
4 respostas
solução!

Oi Vitor, para arrumar isso você precisa implementar o método toString() no seu objeto data.

ficaria assim:

@Override
public String toString(){
    return dia + "/" + mes + "/" ano;
}

Abraços!

Vlw Philippe ! Só complementando o código, faltou o + antes do ano.

Funcionou perfeitamente.

@Override
public String toString(){
    return dia + "/" + mes + "/" + ano;
}

Philippe,

Qual o objetivo do @Override ? Eu comentei ele, e retornou o formato em data perfeitamente.

Data de Entrada: 30/11/2016

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

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

        //@Override
        public String toString(){
            return dia + "/" + mes + "/" + ano;
        }
}

Oi Vitor! O @Override é uma anotação que usamos para indicar que esse método esta sobrescrevendo um comportamento da classe pai dele.

Conforme você for seguindo os cursos você vai chegar na parte de Herança e vai entender certinho como que isso funciona.

Abraços!