小威先森 2020-04-29 23:35 采纳率: 0%
浏览 124
已结题

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

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

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

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

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

求详细的注释代码

  • 写回答

1条回答 默认 最新

  • 黑铁练习生 2020-04-30 02:07
    关注

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

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错