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

DÚVIDA NA SINTAXE

Olá, estou dificuldade para resolver este exercício, porque não entendi muito bem um elemento da sintaxe.

Dei uma olhada na resposta, e vi que estava assim:

void mostra() {
        System.out.println("Admitida no dia: " + this.DatadeEntrada.getFormatada());

Só que esse "DatadeEntrada eu não entendi o quê é. Ele um método, onde o código

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

está inserido?

Do jeito que estou tentando fazer (abaixo), está dando erro. Mas se eu tento de forma diferente, colocando o this.dia, por exemplo, a resposta vem normal.

Poderiam me ajudar?

Obrigada :D

class DadosData {
    int dia;
    int mes;
    int ano;

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

    void mostra() {
        System.out.println("Admitida no dia: " + this.DatadeEntrada.getFormatada());

    } 
}

class Admitida { 
  public static void main(String[] args) {
        DadosData f1 = new DadosData();
        f1.dia = 10;
        f1.mes = 01;
        f1.ano = 1988;
        f1.mostra();
     }
}
2 respostas
solução!

Boa noite, Rose! Tudo bem com você? =)

Vamos lá...

Seu código está quase certo... A ideia era criar um método na classe Data - no seu caso DadosData, que imprimisse a data formatada, assim:

class DadosData {
    int dia;
    int mes;
    int ano;

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

Agora... Repare que antes desse exercício, sua classe Funcionario já tinha um método chamado de mostra(), que era o responsável por imprimir todos os dados. Dessa forma, o que você precisava fazer, era alterar o método já existente para usar o getFormatada() da classe DadosData, que você criou para substituir a String, dataEntrada, entendeu?

Então a classe Funcionario, fica assim:

class Funcionario {
    // Atributos e métodos...

    void mostra() {
        System.out.println("Nome: " + this.nome);
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Salário: R$" + this.salario);
        System.out.println("Data de entrada: " + this.dataEntrada.getFormatada());
        System.out.println("RG: " + this.rg);
        System.out.println("Ganho anual: R$" + this.calculaGanhoAnual());
    }

Repare que a única mudança foi na linha que imprime a data... Esse this está referenciando a própria classe, ou seja Funcionario, portanto, quando você escreve this.dataEntrada, você está acessando o atributo dataEntrada da própria classe Funcionario. Em seguida, você chama o método getFormatada(), para realizar a impressão da data formatada. =)

Consegui tirar sua dúvida? =)

Espero que sim, mas se tiver qualquer dúvida, não hesite em perguntar aqui no fórum para que possamos ajudá-la!

Abraço e bons estudos,

Fábio

Obrigada Fábio! Comecei a estudar Java faz pouco tempo e ainda estou meio perdida. Mas ajudou sim, consegui resolver o exercício :D