Não consigo resolver!

19 respostas
iniciante
G

olá, estou tentando compilar esse exercício, mas não estou conseguindo. Não sei se esta errado. Não consigo achar o erro.

Crie uma classe em Java chamada Data que inclui três informações como variáveis de instância:

• mês (int),

• dia (int)

• ano (int).

A classe deve ter métodos get e set para cada variável e um construtor que inicializa as variáveis e assume que os valores fornecidos são corretos. Forneça um método displayData que exibe o dia, o mês e o ano separados por barras normais ( ‘/ ‘).

Crie uma classe chamada DataExtensa que deve ser uma subclasse de Data e deve possuir dois novos métodos (i) converterMesExtenso que deve receber um numero inteiro e retornar uma String e outro (ii) displayDataExtenso() que deve exibir a data no seguinte formato: 14 de abril de 2021, por exemplo.

esse é o meu código:

import java.util.Scanner;

public class Data {
  public static void main(String[] args) {

    int dia = 0;
    int mes = 0;
    int ano = 0;

    Scanner s = new Scanner(System.in);

    System.out.println("Digite o dia");
    dia = Integer.parseInt(s.nextLine());

    System.out.println("Digite o mes");
    mes = Integer.parseInt(s.nextLine());

    System.out.println("Digite o ano");
    ano = Integer.parseInt(s.nextLine());

    Data d = new Data(dia, mes, ano);
    System.out.println("a data é:" + d.displayData);
  }
}


  
public class Data {

  private int dia;
  private int mes;
  private int ano;

  public Data (int d, int m, int a) {

    setDia(d);
    setMes(m);
    setAno(a);
  }

  public void setDia (int d) {

    dia = d;
  }

  public int getDia() {

    return dia;
  }

  public void setMes (int m) {

    mes = m;
  }

  public int getMes() {

    return mes;
  }

  public void setAno (int a) {

    ano = a;
  }

  public int getAno() {

    return ano;
  }
  
  public void displayData() {

    System.out.printf("%d%d%d, getDia(), getMes(), getAno()");
  }

}


public class DataExtensa extends Data {

  private int converterMesExtenso;
  private int dia;
  private int mes;
  private int ano;


  public void setMesExtenso(int converterMesExtenso) {
    this.MesExtenso = MesExtenso;
  }

  public int getMesExtenso() {
    return String;
  }

  public void displayDataExtenso() {
    System.out.printf("%d%d%d, dia, mes, ano");
  }
}

Alguém poderia me ajudar, preciso disso até 23:59 de hoje,
Espero que ajudem,
Gustavo Carreiro.

19 Respostas

R

Renomeie essa classe que tem o método main()
Vc já tem outra classe Data (no mesmo pacote?)

d.displayData()
Faltou os parênteses para chamar um método.

O exercício diz para criar um método, não variável.

G

vc poderia me ajudar, por favor!!!

G

vc poderia arrumar o meu código?

R

Fez o que eu falei acima?

G

fiz sim

G

me ajuda!!!

R

Esse método vc vai fazer assim:

public String converterMesExtenso(int mes) {
    switch (mes) {
        case 1:
            return "Janeiro";
        case 2:
            return "Fevereiro";
        //Faça o mesmo para os outros meses

    }
    return "mês inválido";
}
G

eu fiz e depois disso

G

e agora o que eu faço

R

Mostra seu código atualizado

G

import java.util.Scanner;

public class Data {
public static void main(String[] args) {

int dia = 0;
int mes = 0;
int ano = 0;

Scanner s = new Scanner(System.in);

System.out.println("Digite o dia");
dia = Integer.parseInt(s.nextLine());

System.out.println("Digite o mes");
mes = Integer.parseInt(s.nextLine());

System.out.println("Digite o ano");
ano = Integer.parseInt(s.nextLine());

Data d = new Data(dia, mes, ano);
System.out.println("a data é:" + d.displayData());

}
}

import java.util.Scanner;

public class Data {
public static void main(String[] args) {

int dia = 0;
int mes = 0;
int ano = 0;

Scanner s = new Scanner(System.in);

System.out.println("Digite o dia");
dia = Integer.parseInt(s.nextLine());

System.out.println("Digite o mes");
mes = Integer.parseInt(s.nextLine());

System.out.println("Digite o ano");
ano = Integer.parseInt(s.nextLine());

Data d = new Data(dia, mes, ano);
System.out.println("a data é:" + d.displayData());

}
}

public class DataExtenso extends Data {

private int dia;

private int mes;

private int ano;
public void setMesExtenso(int converterMesExtenso) {

this.MesExtenso = MesExtenso;

}
public int getMesExtenso() {

return String;

}
public String converterMesExtenso(int mes) {

switch (mes) {

case 1:

return (“Janeiro”);

case 2:

return (“Fevereiro”);

case 3:

return (“Março”);

case 4:

return (“Abril”);

case 5:

return (“Maio”);

case 6:

return (“Junho”);

case 7:

return (“Julho”);

case 8:

return (“Agosto”);

case 9:

return (“Setembro”);

case 10:

return (“Outubro”);

case 11:

return (“Novembro”);

case 12:

return (“Dezembro”);

}

return (mes Inválido);
public void displayDataExtenso() {

System.out.printf("%d%d%d, dia, mes, ano");

}

}
G

ta dando erro no parênteses do mes inválido

G

no ponto e vírgula do mes inválido tá dando erro

R

Esses parênteses ao redor dos meses são desnecessários. Pode remover.
E tá faltando um } depois do return “mês inválido”;

G

ta faltando mais alguma coisa no meu código?

R

Vc não tá imprimindo a data assim no método displayDataExtenso()

J

Vc ta usando isso pra algo especifico? É um teste vc poderia usar calendar ou localdate q são mais simples de trabalhar. Vc ta usando 2 classes diferentes pra pegar o mes? Não compreendi.

R

Parece que é um exercício.
Ele precisa criar uma classe Data.

J

Ele pode usaro DateFormat ou SimpleDateFormat pra formatar a data.
Essa moça explica bem os conceitos
Date


DateFormat
Criado 14 de abril de 2021
Ultima resposta 15 de abr. de 2021
Respostas 19
Participantes 3