、案例 计算一个班级n个学生、一个班长、一个学委的平均分。 定义学生类Student:学号(自增)、姓名、分数,构造方法,toString方法,必要的set、get方法; 定义班长类StudentB
时间: 2024-12-17 16:33:22 浏览: 6
在Java中,我们可以定义一个基础的`Student`类和两个特殊的角色类,如`StudentB(班长)`和`StudentC(学委)`,它们都是从`Student`类派生出来的。这里是一个简单的示例:
```java
class Student {
private int id;
private String name;
private double score;
public Student(int id, String name) {
this.id = id;
this.name = name;
this.score = 0.0; // 默认分数为0
}
public void setScore(double score) {
this.score = score;
}
public double getScore() {
return score;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", score=" + score +
'}';
}
}
class StudentB extends Student {
// 班长可能会有一些特殊的功能或属性,比如额外的职责
}
class StudentC extends Student {
// 学委也一样,可以有其特定的功能或属性
}
public class AverageScoreCalculator {
public static double calculateAverage(Student[] students, StudentB班长 studentB, StudentC学委 studentC) {
int totalStudents = students.length + 2; // 包含班长和学委
double sum = 0.0;
for (Student student : students) {
sum += student.getScore();
}
sum += studentB.getScore(); // 班长的分数
sum += studentC.getScore(); // 学委的分数
return sum / totalStudents;
}
public static void main(String[] args) {
Student[] studentArray = new Student[5]; // 创建一些学生实例
StudentB studentB = new StudentB(1, "班长");
StudentC studentC = new StudentC(2, "学委");
double average = calculateAverage(studentArray, studentB, studentC);
System.out.println("班级平均分: " + average);
}
}
```
在这个例子中,我们首先定义了`Student`类,然后通过继承创建了`StudentB`和`StudentC`作为特殊的角色。在`calculateAverage`方法中,我们将班长和学委的分数也加到总和中。最后,在`main`函数中,我们计算并打印出整个班级的平均分。
阅读全文