java作业。。。

完成下面父类及子类的声明
(1) 声明Student类属性包括学号、姓名、英语成绩、数学成绩、计算机成绩和总成绩。方法包括构造方法、get方法、 set方法、toString方法、equals方法、compare方法(比较两个学生的总成绩,结果分为大于、小于、等于),sum方法(计算总成绩)和testScore方法(计算评测成绩)。
注:评测成绩可以取三门课成绩的平均分,另外任何一门课的成绩的改变都需要对总成绩进行重新计算,因此,在每一个set方法中应调用sum方法计算总成绩。
(2)声明StudentXW(学习委员)类为Student类的子类。
在StudentXW类中增加责任属性,并重写testScore方法(评测成绩=三门课平均分+3)
(3)声明StudentBZ类为Student类的子类
在StudentBZ类中增加责任属性,并重写testScore方法(评测成绩=三门课平均分+5)
4)声明测试类,生成若干个Student类、StudentXW类及StudentBZ类对象,并分别计算它们的评测成绩(建议采用:写一个测试函数,该函数以父类student数组作为参数) 。

package java作业;

public class Hzf_7 {

    public static void main(String[] args) {
        Student ww = new Student(14060490,"王五",50,90,80);
        ww.sum();
        System.out.println("王五的测评成绩为:"+ww.testScore());

        StudentXW zs = new StudentXW(14060441,"张三",50,60,40);
        zs.sum();
        System.out.println("张三的测评成绩为:"+zs.testScore());

        StudentXW ls = new StudentXW(14060442,"李四",80,50,70);
        ls.sum();
        System.out.println("李四的测评成绩为:"+ls.testScore());

    }

}

class Student{
    private int nbr;//学号
    private String name;//姓名
    private float english_scores;//英语成绩
    private float math_scores;//数学成绩
    private float computer_scores;//计算机成绩
    private float total = 0;//总成绩
    //定义空构造方法
    public Student(){}
    //定义构造方法为属性初始化
    public Student(int nbr, String name, float english_scores, float math_scores, float computer_scores) {
        super();
        this.nbr = nbr;
        this.name = name;
        this.english_scores = english_scores;
        this.math_scores = math_scores;
        this.computer_scores = computer_scores;
    }
    //定义获取学号方法
    public int getNbr() {
        return nbr;
    }
    //定义设置学号方法
    public void setNbr(int nbr) {
        this.nbr = nbr;
    }
    //定义过去姓名方法
    public String getName() {
        return name;
    }
    //定义设置姓名方法
    public void setName(String name) {
        this.name = name;
    }
    //定义获取英语成绩方法
    public float getEnglishScores() {
        return english_scores;
    }
    //定义设置英语成绩方法
    public void setEnglishScores(float english_scores) {
        this.english_scores = english_scores;
        total+=english_scores;
    }
    //定义获取数学成绩方法
    public float getMathScores() {
        return math_scores;
    }
    //定义设置数学成绩方法
    public void setMathScores(float math_scores) {
        this.math_scores = math_scores;
        total+=math_scores;
    }
    //定义获取计算机成绩方法
    public float getComputerScores() {
        return computer_scores;
    }
    //定义设置计算机成绩方法
    public void setComputerScores(float computer_scores) {
        this.computer_scores = computer_scores;
        total+=computer_scores;
    }
    //定义获取总成绩方法
    public float getTotal() {
        return total;
    }
    //定义设置总成绩方法
    public void setTotal(float total) {
        this.total = total;
    }
    //定义toString方法
    public String toString() {
        String str=this.nbr+"..."+this.name+"..."+
        this.english_scores+"..."+this.math_scores+"..."+
        this.computer_scores+"..."+this.total;
        return str;
    }
    //定义compare方法
    public int compare(Student stu) {
        int result=0;
        if(this.total>stu.getTotal()){
            result=1;//大于
        }else if(this.total==stu.getTotal()){
            result =0;//等于
        }else if(this.total<stu.getTotal()){
            result=-1;//小于
        }
        return result;
    }
    //定义sum方法
    public void sum(){
        this.total=(this.english_scores+this.math_scores+this.computer_scores);
    }
    //定义testScore方法
    public double testScore(){
        return  ((this.total*1.0d)/3.0);
    }

}
//定义StudentXW继承Student
class StudentXW extends Student{
    private String zr;//责任
    //定义构造方法为属性初始化
    public StudentXW(int nbr, String name, float english_scores, float math_scores, float computer_scores) {
        super(nbr,name,english_scores,math_scores,computer_scores);
        this.zr = "收作业";
    }
    //定义获取学委责任方法
    public String getZr() {
        return zr;
    }
    //重写父类testScore方法
    public double testScore(){
        return super.testScore()+3;//调用父类的testScore方法并+3
    }

}
//定义StudentBZ继承Student
class StudentBZ extends Student{
    private String zr;//班长责任
    //定义构造方法为属性初始化
    public StudentBZ(int nbr, String name, float english_scores, float math_scores, float computer_scores) {
        super(nbr,name,english_scores,math_scores,computer_scores);
        this.zr = "协同辅导员管理班级";
    }
    //定义获取学委责任方法
    public String getZr() {
        return zr;
    }
    //定义获取班长责任的方法
    public String getBz() {
        return zr;
    }
    //重写父类testScore方法
    public double testScore(){
        return super.testScore()+5;//调用父类的testScore方法并+5
    }
}

你可能感兴趣的:(java,Class)