小威先森 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 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡