题目:
创建和显示学生信息,具体要求如下。
① 定义Person类,在该类中定义成员变量name(姓名)、sex(性别)和age(年龄),然后定义有参构造方法,初始化成员变量,最后定义成员方法toString()返回姓名、性别和年龄信息(提示:该方法返回值为一个字符串)。
② 定义Student类继承Person类,在该类中增加成员变量no(学号)、scoreEn(英语成绩)、scoreMath(数学成绩)和scoreCh(语文成绩),然后增加成员方法aver()、max()和min()分别返回三门功课的平均分、最高分和最低分,最后重写toString方法返回姓名、性别、年龄、学号、平均分、最高分和最低分信息。
③ 定义StudentTest类,在main()方法中实现创建和显示学生信息。
代码如下:
1.首先创建Person类
public class Person {
// 定义成员变量name(姓名)、sex(性别)和age(年龄)
private String name;
private String sex;
private int age;
// 然后定义有参构造方法,初始化成员变量
public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
// 定义成员方法toString()返回姓名、性别和年龄信息
public String toString() {
// 该方法返回值为一个字符串
return "姓名:" + name + ",性别:" + sex + ",年龄:" + age;
}
}
2.然后创建Student类
public class Student extends Person {
// 增加成员变量no(学号)、scoreEn(英语成绩)、scoreMath(数学成绩)和scoreCh(语文成绩)
private String no;
private double scoreEn;
private double scoreMath;
private double scoreCh;
// 定义有参构造方法,初始化成员变量
public Student(String name, String sex, int age, String no, double scoreEn, double scoreMath, double scoreCh) {
super(name, sex, age);
this.no = no;
this.scoreEn = scoreEn;
this.scoreMath = scoreMath;
this.scoreCh = scoreCh;
}
// 增加成员方法aver()、max()和min()分别返回三门功课的平均分、最高分和最低分
// 平均分
public double aver() {
return (scoreEn + scoreMath + scoreCh) / 3;
}
// 最高分
public double max() {
return Math.max(Math.max(scoreEn, scoreMath), scoreCh);
}
// 最低分
public double min() {
return Math.min(Math.min(scoreEn, scoreMath), scoreCh);
}
//最后重写toString方法返回姓名、性别、年龄、学号、平均分、最高分和最低分信息
public String toString() {
return super.toString() + ",学号:" + no + ",平均分:" + aver() + ",最高分:" + max() + ",最低分:" + min();
}
}
3.最后创建StudentText类
public class StudentTest {
// 定义StudentTest类,在main()方法中实现创建和显示学生信息。
public static void main(String[] args) {
Student student = new Student("张三", "男", 18, "20210001", 80, 90, 85);
System.out.println(student.toString());
}
}
运行结果如下: