Mensagem de erro - não existe "main method"

Olá pessoal, fiz esse exercícioe ao rodar diz que não existia o metodo main, inserir e agora me dá o erro na primeira variável com a mensagem “illegal start of expression”.
já mexi e remexi e não entendi o erro. Grato se alguém puder ajudar

package tp04;
import java.util.Scanner;

public class Data
{
public static void main(String[] args)
{
//variaveis utilizadas apenas nesta class pelos construtores.
private int dia;
private int mes;
private int ano;
Scanner ler = new Scanner(System.in);

public Data()
    {
        entraAno();
        entraMes();
        entraDia();
}
public Data(int d, int m, int a)
    {
        entraAno(a);
        entraMes(m);
        entraDia(d);	
}
//Verifica data e salva no construtor com parametro.
private void entraDia(int d)
    {
        if (d < 1 || d > qtdDias(mes))
        {
            System.out.println("Dia Invalido, deve estar no intervalo (1-"+qtdDias(mes)+") para o mes "+mes);
            this.dia = 1;
        }
        else
        {
            this.dia = d;
        }
}
//Verifica data e salva no construtor com parametro.
private void entraMes(int m)
    {
        if (m < 1 || m > 12)
        {
            System.out.println("Mes Invalido, deve estar no intervalo (1-12)");
            this.mes = 1;
        }
        else
        {
            this.mes = m;
        }
}
//Verifica data e salva no construtor com parametro.
private void entraAno(int a)
    {	
        if (a < 1 || a > 9999)
        {
            System.out.println("Ano Invalido, deve estar no intervalo (1-9999)");
            this.ano = 1;
        }
        else
        {
            this.ano = a;
        }
}
//Verifica data e salva no construtor sem parametro.
private void entraDia()
    {
        int d = 0;
        while (d < 1 || d > qtdDias(mes))
        {
            try
            {
                System.out.print("Informe o dia: ");
                d = ler.nextInt();
            }
            catch (Exception e) { }
            if (d < 1 || d > qtdDias(mes))
            {
                System.out.println("Dia Invalido, deve estar no intervalo (1-"+qtdDias(mes)+") para o mes "+mes);
            }
        }
        this.dia = d;
}
//Verifica data e salva no construtor sem parametro.
private void entraMes()
    {
        int m = -1;
        while (m < 1 || m > 12)
        {
            try
            {
                System.out.print("Informe o mes: ");
                m = ler.nextInt();
            }
            catch (Exception e) { }
            if (m < 1 || m > 12)
            {
                System.out.println("Mes Invalido, deve estar no intervalo (1-12)");
            }
        }
        this.mes = m;
}
////Verifica ano e salva no construtor sem parametro.
public final void entraAno()
    {
        int a = -1;
        while (a < 1 || a > 9999)
        {
            try
            {
                System.out.print("Informe o ano: ");
                a = ler.nextInt();
            }
            catch (Exception e) { }
            if (a < 1 || a > 9999)
            {
                System.out.println("Ano Invalido, deve estar no intervalo (1-9999)");
            }
        }
        this.ano = a;
}
//salva na variavel privada.
public int retDia()
    {
        return this.dia;
}
//salva na variavel privada.
public int retMes()
    {
        return this.mes;
}
//salva na variavel privada
public int retAno()
    {
        return this.ano;
}
//monta a string com  a data completa(dd/mm/aaaa).
public String mostra1()
    {
        String data = "";
    
        if (this.dia < 10)
            data += "0";
        data += this.dia + "/";

        if (this.mes < 10)
            data += "0";
        data += this.mes + "/";

        if (this.ano < 1000)
            data += "0";
        if (this.ano < 100)
            data += "0";
        if (this.ano < 10)
            data += "0";
        data += this.ano;

        return data;
}
//mostra data completo(dd/mesPorExtenso/ano).
public String mostra2()
    {
        String data = "";

        if (this.dia < 10)
            data += "0";
        data += this.dia + "/";

        switch(mes)  
        { 
            case 1:
                data += "Janeiro";
                break;
            case 2: 
                data += "Fevereiro"; 
                break; 
            case 3: 
                data += "Março"; 
                break; 
            case 4: 
                data += "Abril"; 
                break; 
            case 5: 
                data += "Maio"; 
                break; 
            case 6: 
                data += "Junho"; 
                break; 
            case 7: 
                data += "Julho"; 
                break; 
            case 8: 
                data += "Agosto"; 
                break; 
            case 9: 
                data += "Setembro"; 
                break; 
            case 10: 
                data += "Outubro"; 
                break; 
            case 11: 
                data += "Novembro"; 
                break; 
            case 12: 
                data += "Dezembro"; 
                break; 
            default:
                data += "Mês-Inválido";
                    break; 
        }
        data += "/";

        if (this.ano < 1000)
            data += "0";
        if (this.ano < 100)
            data += "0";
        if (this.ano < 10)
            data += "0";
        data += this.ano;

        return data;
}
//valida se o ano e bissexto ou nao 
public boolean bissexto()
    {
if ( ( ( ano % 4 ) == 0 ) && ( ( ano % 100 ) != 0 ) || ( ( ano % 400 ) == 0 ) )
        return true;
    else
        return false;
}
//retorna os dias trasncorridos.
public int diasTranscorridos()
    {
        int cont = 0;

        switch(mes)
        {
            case 12:
                if (mes == 12)
                    cont+=dia;
                else
                    cont+=31;
            case 11:
                if (mes == 11)
                    cont+=dia;
                else
                cont+=30;
            case 10:
                if (mes == 10)
                    cont+=dia;
                else
                cont+=31;
            case 9:
                if (mes == 9)
                    cont+=dia;
                else
                cont+=30;
            case 8:
                if (mes == 8)
                    cont+=dia;
                else
                cont+=31;
            case 7:
                if (mes == 7)
                    cont+=dia;
                else
                cont+=31;
            case 6:
                if (mes == 6)
                    cont+=dia;
                else
                cont+=30;
            case 5:
                if (mes == 5)
                    cont+=dia;
                else
                cont+=31;
            case 4:
                if (mes == 4)
                    cont+=dia;
                else
                cont+=30;
            case 3:
                if (mes == 3)
                    cont+=dia;
                else
                cont+=31;
            case 2:
                if (mes == 2)
                    cont+=dia;
                else
                {
                    if (bissexto())
                        cont+=29;
                    else 
                        cont+=28;
                }
            case 1:
                if (mes == 1)
                    cont+=dia;
                else
                cont+=31;
                break;
            default:
                break;
        }
        return cont;
}
//retornas quandos dias tem o mes e verifica o bissexto de fevereiro usando a class bissexto().
public int qtdDias(int m)
{
    switch(mes)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return 31;
        case 4:
        case 6:
        case 9:
        case 11:
            return 30;
        case 2:
            if (bissexto())
                return 29;
            else 
                return 28;
        default:
            return -1;
    }
}}

}

É que você declarou os atributos, construtores e métodos dentro do método main, Isso está errado.