Não consigo resolver!

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.

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.

vc poderia me ajudar, por favor!!!

vc poderia arrumar o meu código?

Fez o que eu falei acima?

fiz sim

me ajuda!!!

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";
}

eu fiz e depois disso

e agora o que eu faço

Mostra seu código atualizado

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");
}
}

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

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

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

ta faltando mais alguma coisa no meu código?

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

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.

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

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


DateFormat