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

Dúvida no Ex. 1 da Aula 5 - Modificadores de acesso

Olá a todos, como estamos usando os modificadores de acesso public e private... alterei todas as entradas/visualização dos atributos me utilizando dos getters e setters, mas, estou tendo dificuldade em fazer a entrada dos atributos que se utilizam da classe Data, com os métodos preencheData() e dataFormatada()... Alguma sugestão? Obrigada Je Godoy

2 respostas
solução!

Olá Jesilene! Há várias formas de você o preencheData() e o dataFormatada() e isso vai de acordo com cada desenvolvedor.

No meu caso, eu optei por fazer da seguinte forma:

Na minha classe Data eu criei dois métodos: setData() e dataFormatada()

O método setData() recebe como parâmetro o dia, o mês e o ano que eu quero por nessa data. Enquanto o meu dataFormatada() me retorna uma String com a data no formato dd/MM/yyyy. Veja minha classe Data abaixo com os dois métodos:

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

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

    public String getFormatada(){
        return this.dia + "/" + this.mes + "/" + this.ano;
    }

}

Na minha classe Funcionario possui o atributo dataDeEntrada que é uma variável de referencia à um objeto do tipo Data. Assim, eu criei dois métodos dentro de minha classe Funcionario: setDataDeEntrada() que é o preencheData() que você deseja e o getDataDeEntrada().

No método setDataDeEntrada() eu passo como parâmetro o dia, o mês e o ano da Data, então, eu instancio a Classe Data (Ou seja, crio um objeto do tipo Data) e atribuo ele ao atributo da minha classe o dataDeEntrada. Ja que esse meu atributo é um objeto da classe Data, então ele possui todos os métodos da classe Data, então dentro do método setDataDeEntrada(), através do atributo, eu chamo o método da minha classe Data, o setData() e adiciono os valores da minha Data. Veja só como fica:

public void setDataDeEntrada(int di, int m, int a){
        this.dataDeEntrada = new Data();
        this.dataDeEntrada.setData(di, m, a);
    }

Ja para meu método getDataDeEntrada(), através do atributo dataDeEntrada da minha Classe Funcionario que é um objeto Data, eu chamo o método dataFormatada() da classe Data e retornando esse valor. Veja só como fica:

public String getDataDeEntrada(){
        return this.dataDeEntrada.getFormatada();
    }

Enfim, Espero ter ajudado. Qualquer coisa só perguntar. Bons Estudos!

Obrigada pelo retorno Romário...

Estava errando na construção do get que, ao invés de String estava retornando Data... onde você me mostrou o correto:

public String getDataAdmissao(){ return this.dataAdmissao.dataFormatada(); }

e para setar o valor da data estava querendo colocar misturado o setDataAdmissao() com a dataFormatada() , o que não é necessário:

Funcionario f = new Funcionario(); f.setDataAdmissao(1, 8, 2015);

e para mostrar: System.out.println("Data de Admissao: " + this.dataAdmissao.dataFormatada());

Resultado: Data de Admissao: 1/8/2015