这个题该怎么用JAVA写,求助

1.创建类Student,包括属性:
静态属性:学校名称
普通属性:
学号
姓名
数学成绩
网络课成绩
Java成绩
static代码块:提示类被加载

2、封装三门课的成绩,确保成绩为0到100分之间,否则使用
默认值,也就是0分

3、创建三个构造方法:
无参构造方法
初始化学号姓名的有参构造方法
初始化所有属性,除了学校的有参构造方法
4、创建两个普通成员方法:
静态有参方法,分数平均值(注 意整数相除还是整数,但
平均值可能是实数,需要处理这个问题)
非静态无参方法,自我介绍(模板: 大家好,我是XXXX学
校学生,学号YYY,这次考试中,数学AAA分,网络BBB
分,JavaCCC分,平均分为DDD。注意,平均分可以用求平均值的程序来计算)

5、创建另一个类调用Student类,创建两个Student类型的对
象,为其赋予不同的学号、姓名和成绩。通过类名直接调
用静态变量,为学校名属性赋值。然后调用这两个对象的
自我介绍方法。

求详细的注释代码

import java.text.DecimalFormat;
public class Student {

public static String schoolName;
public String stuNumber;
public String stuName;
private double mathScore;
private double netScore;
private double javaScore;

static {
    System.out.println("Student类被加载了。。");
}

//无参构造方法
public Student() {};

//初始化学号姓名的有参构造方法
public Student(String stuNumber, String stuName) {
    this.stuNumber = stuNumber;
    this.stuName = stuName;
}

//初始化所有属性,除了学校的有参构造方法
public Student(String stuNumber, String stuName, double mathScore, double netScore, double javaScore) {
    this.stuNumber = stuNumber;
    this.stuName = stuName;
    this.mathScore = mathScore;
    this.netScore = netScore;
    this.javaScore = javaScore;
}

//静态有参方法,求分数平均值
public static double scoreAvg(double a ,double b , double c ) {

    double num = (a+b+c)/3;
    DecimalFormat df = new DecimalFormat("#.00");//保留两位小数
    String mat = df.format(num);
    return Double.parseDouble(mat);

}

//非静态无参方法,自我介绍
public void showMe() {
    double avgScore = scoreAvg(mathScore, netScore, javaScore);

    System.out.println("大家好,我是"+ schoolName+ "的学生,学号:"+ stuNumber
            +",在这次考试中,数学 "+ mathScore+" 分,网络 "+netScore+" 分,java "+ javaScore+" 分,平均分"+ avgScore);
}



//-------封装三门课的成绩--start------------------------
public double getMathScore() {
    return mathScore;
}
public void setMathScore(double mathScore) {
    //确保成绩在0到100之间
    if(mathScore>=0 && mathScore<=100)
        this.mathScore = mathScore;
    else
        this.mathScore= 0;
}
public double getNetScore() {
    return netScore;
}
public void setNetScore(double netScore) {
    //确保成绩在0到100之间
    if(netScore>=0 && netScore <=100)
        this.netScore = netScore;
    else
        this.netScore = 0;
}
public double getJavaScore() {
    return javaScore;
}
public void setJavaScore(double javaScore) {
    //确保成绩在0到100之间
    if(javaScore>=0 && javaScore<=100)
        this.javaScore = javaScore;
    else
        this.javaScore = 0;
}

//-------封装三门课的成绩--end----------------------    


//测试运行
public static void main(String[] args) {

    Student s1 = new Student("A001","张三",87,79,93);
    Student s2 = new Student("B242","李四",65,86,81);
    Student.schoolName = "华中科技大学";
    s1.showMe();
    s2.showMe();

}

}