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

Exercício 6- mostra() imprimindo o endereço de memoria da data

Meu programa na hora de imprimir a data ele imprime o endereço de memória!

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

    void preencheData (int _dia, int _mes, int _ano){
        this.dia=_dia;
        this.mes=_mes;
        this.ano=_ano;
    }

}




class Funcionario {
    String nome;
    String departamento;
    double salario;
    Data dataDeEntrada;

    void recebeAumento(double Aumento){
        this.salario = salario+Aumento;
    }
    double calculoGanhoAnual(){
        return this.salario * 12;

    }
    void quantidadeDeErros(int Erros){
        if (Erros>=12){
            System.out.println("Está demitido");
        }else{
            System.out.println("Está de boas");
        }

    }
    void mostra(){
        System.out.println("nome: "+this.nome);
        System.out.println("Departamento: "+this.departamento);
        System.out.println("Salario: "+this.salario);
        System.out.println("Data: "+dataDeEntrada);
    }

}




public class demoTeste {


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

       f1.nome="Jayme";
       f1.departamento="RH";
       f1.salario=2121.0;
       f1.dataDeEntrada=new Data();
       f1.dataDeEntrada.preencheData(1,7,2009);

       f1.mostra();

       System.out.println(f1.calculoGanhoAnual());

       f1.quantidadeDeErros(13);

    }

}
5 respostas

Opa, você precisa implementar o método toString na classe Data, mas acho que vc não chegou nessa parte da aula ainda.. Espera só um pouco :).

Então conta como exercício certo né? obrigado!

solução!

Matheus pode considerar certo :D

um spoiler:

public class Data {

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

Oi Matheus você tem que imprimir o objeto.atributo se você imprimir somente o f1 do seu funcionário ele vai dar somente o endereço de memória mas se você imprimir f1.nome ele vai te dar = "Jayme" no caso da Data, Data é a classe você instância a classe e utiliza um objeto pra fazer referência chamado dataDeEntrada e o que você quer dessa referência o dia/mês/ano certo ?

Então basta adicionar ao mostra():

System.out.println("Data: "+dataDeEntrada.dia+"/"+dataDeEntrada.mes+"/"+dataDeEntrada.ano);

Ajudei.

Esse spoiler foi de grande ajuda!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software