java中继承类 student 类例子_java中student类继承问题

完成下面父类和子类的定义:

(1)定义Student类,放入stu包中。

属性包括学号、姓名、英语成绩、数学成绩、计算机成绩和总成绩。

方法包括构造方法、get方法、set方法、toString方法(返回该类的对象)、equals方法(比较两个对象是否相等,若等返回true,否则返回false)、compare方法(比较两个学生的总成绩,结果分为大于、小于、等于)、sum方法(计算总成绩)、testScore方法(计算评测成绩)。

注:评测成绩可以取三门课成绩的平均分,另外任何一门课的成绩的改变都需要对总成绩进行重新计算,因此在每一个set方法中应调用sum方法计算总成绩。

(2)定义StudentXW类为Student的子类,放入sub包中。

在StudentXW(学习委员)类中增加责任属性,并重写testScore方法(计算测评成绩,测评成绩=三门课的平均分+3)。

(3)定义StudentBZ(班长)类为Student的子类,放入sub包中。

在StudentXW(学习委员)类中增加责任属性,并重写testScore方法(计算测评成绩,测评成绩=三门课的平均分+5)。

(4)定义测试类,生成若干个Student类、StudentXW类及StudentXW类的对象,并分别计算它们的评测成绩。

获得的知识:

1.java中有变量默认值一说,也就是说声明变量的话。引用型默认值为null,如String.值类型默认值为0,如int.静态变量声明时不用赋值。

2.静态变量可以继承的,它会把值跟随着继承到子类中去。

3.若是构造函数中已有参数定义了,那么直接用get函数即可。若是构造函数没有参数,那么需要用set和get来给函数赋值。

4.把共性的东西写在父类中,在子类中声明非共性的变量。注意构造函数的使用。

代码如下:

package

stu;

class Student_usual {

private int no;

private String name;

private float englishScore;

private float mathScore;

private float computerScore;

float sum1;

static int count;

static float sum2;

public Student_usual() {

}

public Student_usual(int no,String name){

this.no=no;

this.name=name;

}

public int getNo() {

return no;

}

public void setNo(int no) {

this.no = no;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public float getEnglishScore() {

return englishScore;

}

public void setEnglishScore(float englishScore)

{

sum1 += englishScore;

this.englishScore = englishScore;

}

public float getMathScore() {

return mathScore;

}

public void setMathScore(float mathScore) {

sum1 += mathScore;

this.mathScore = mathScore;

}

public float getComputerScore() {

return computerScore;

}

public void setComputerScore(float

computerScore) {

sum1 += computerScore;

this.computerScore = computerScore;

}

public String toString() {//输出一个学生的信息

return "学号:" + no + " 姓名:" + name + " 英语:" +

englishScore + " 数学:"

+ mathScore + " 计算机:" + computerScore + " 总成绩:"

+ sum1;

}

public float testScore() {//求一个学生的均分

count++;

sum1/=3;

sum2+=sum1;

return sum1;

}

public float getAverage(){//求多个学生的均分

return sum2/count;

}

}

class StudentXW extends Student_usual {

private String duty;

public StudentXW(int no,String name,String duty)

{

super(no,name);

}

public String getDuty() {

return duty;

}

public float getAverage() {

return super.getAverage() + 3;

}

}

class StudentBZ extends Student_usual {

private String duty;

public StudentBZ(int no,String name,String duty)

{

super(no,name);

}

public String getDuty() {

return duty;

}

public float getAverage() {

return super.getAverage() + 5;

}

}

public class Student {

public static void main(String[] args) {

// TODO 自动生成的方法存根

Student_usual stu1 = new Student_usual();

stu1.setNo(1);

stu1.setName("A");

stu1.setEnglishScore(60);

stu1.setMathScore(65);

stu1.setComputerScore(70);

System.out.println(stu1.toString() + " 均分:" +

stu1.testScore());

Student_usual stu2=new Student_usual();

stu2.setNo(2);

stu2.setName("B");

stu2.setEnglishScore(65);

stu2.setMathScore(70);

stu2.setComputerScore(75);

System.out.println(stu2.toString()+"

均分:"+stu2.testScore());

StudentXW stuxw = new

StudentXW(10,"H","学习委员");

System.out.println("学号:" + stuxw.getNo() + "

姓名:" + stuxw.getName()

+ " 均分:" + stuxw.getAverage());

StudentBZ stubz = new

StudentBZ(20,"Y","班长");

System.out.println("学号:" + stubz.getNo() + "

姓名:" + stubz.getName()

+ " 均分:" + stubz.getAverage());

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值