Java ajuda

não sei bem oque o professor ta querendo alguem me ajuda

Faça um programa que contenha uma classe que represente uma data. Este programa deverá possuir um construtor que receberá na seguinte ordem o valor do dia, mês e ano. Sempre que um determinado valor não for válido, os seguintes valores default deverão ser utilizados: dia = 01, mês = 01 e ano = 1900. O mês deverá possuir valores que vão de 01 até 12. O dia deverá possuir valor de 01 até o limite máximo do mês escolhido, levando em consideração os anos bissextos. Neste caso, para ser bissexto basta que o ano seja múltiplo de 4. O ano não poderá ser maior que 10000, mas poderá ser negativo para datas antes de cristo. Tanto o dia, como o mês e o ano deverão ser números inteiros.
A classe deverá possuir os seguintes métodos:
• setdia(valor)
Este método deverá inserir um novo valor válido para o dia.
• setmes(valor)
Este método deverá inserir um novo valor válido para o mês. Caso a mês definido possua um limite de dias inferior ao dia já registrado, colocar no dia o valor máximo de dias do mês.
• setano(valor)
Este método deverá inserir um novo valor válido para o ano. Caso o ano definido possua um limite de dias do mês de fevereiro inferior ao dia já registrado, colocar no dia o valor máximo de dias do mês.
• getdia()
Retorna o valor do dia da data.
• getmes()
Retorna o valor do mês da data.
• getano()
Retorna o valor do ano da data.
• somadias(valor)
Soma à data atual o total de dias informado, fazendo desta a nova data. Deve ser levado em consideração a regra de limites de cada parâmetro. Se ultrapassar o valor máximo do ano, colocar o valor máximo.
• subtrairdias(valor)
Subtrai da data atual o total de dias informado fazendo desta a nova data. Deve ser levado em consideração a regra de limites de cada parâmetro.
• toString()
Deverá sobrescrever o método toString para devolver uma String com a data no formato “dia/mês/ano - sigla”, sendo o dia e o mês apresentados com dois dígitos e o ano com 4 dígitos. O ano deverá sempre ser apresentado sem sinal e a data deverá estar seguida da sigla “AC” para anos negativos e “DC” para anos positivos.

eu consegui fazer ate aqui o restante não entendi muito alguem me ajuda por favor

package ava2;

public class Ava2 {

public static void main(String[] args) {
  
    
}

}
class diamesano{
private int dia, mes, ano;
public diamesano(int dia, int mes , int ano) {

    this.dia = dia;
    this.mes = mes;
    this.ano = ano;
    valida_dia();
    valida_mes();
    valida_ano();
    
} 
 

public int getDia() {
    return dia;
}

public int getMes() {
    return mes;
}

public int getAno() {
    return ano;
}

public void setDia(int dia) {
    this.dia = dia;
    
}

public void setMes(int mes) {
    this.mes = mes;
    valida_mes();
}

public void setAno(int ano) {
    this.ano = ano;
    valida_ano();
 
    
}

public void valida_dia(){
    dia = 01;


}
public void valida_mes(){
    boolean meses;
    meses = mes >= 01 && mes <=12;
}

public void valida_ano(){
     
     // se o ano for maior que 400
    if(ano % 400 == 0){
        System.out.println(ano + " é bissexto.");
    // se o ano for menor que 400
    } else if((ano % 4 == 0) && (ano % 100 != 0)){
        System.out.println(ano + " é bissexto.");
    } else{
        System.out.println(ano + " não é bissexto");
    }}

}