接口的综合案例

张开发
2026/6/30 4:16:24 15 分钟阅读
接口的综合案例
1.题目要求2.解题1.首先我们写一个学生类用来描述学生的相关信息public class Student {private String name;private char sex;private double score;public Student() {}public Student(String name, char sex, double score) {this.name name;this.sex sex;this.score score;}public String getName() {return name;}public void setName(String name) {this.name name;}public char getSex() {return sex;}public void setSex(char sex) {this.sex sex;}public double getScore() {return score;}public void setScore(double score) {this.score score;}}2.接着写一个StudentOperator接口表示学生信息管理系统的两个功能。public interface StudentOperator { void printAllInfo(ArrayListStudent students); void printAverageScore(ArrayListStudent students); }3.然后写一个StudentOperator接口的实现类StudentOperatorImpl1采用第1套方案对业务进行实现。public class StudentOperatorImpl1 implements StudentOperator{ Override public void printAllInfo(ArrayListStudent students) { System.out.println(----------全班全部学生信息如下--------------); for (int i 0; i students.size(); i) { Student s students.get(i); System.out.println(姓名 s.getName() , 性别 s.getSex() , 成绩 s.getScore()); } System.out.println(-----------------------------------------); } ​ Override public void printAverageScore(ArrayListStudent students) { double allScore 0.0; for (int i 0; i students.size(); i) { Student s students.get(i); allScore s.getScore(); } System.out.println(平均分 (allScore) / students.size()); } }4.接着再写一个StudentOperator接口的实现类StudentOperatorImpl2采用第2套方案对业务进行实现。public class StudentOperatorImpl2 implements StudentOperator{ Override public void printAllInfo(ArrayListStudent students) { System.out.println(----------全班全部学生信息如下--------------); int count1 0; int count2 0; for (int i 0; i students.size(); i) { Student s students.get(i); System.out.println(姓名 s.getName() , 性别 s.getSex() , 成绩 s.getScore()); if(s.getSex() 男){ count1; }else { count2 ; } } System.out.println(男生人数是 count1 , 女士人数是 count2); System.out.println(班级总人数是 students.size()); System.out.println(-----------------------------------------); } ​ Override public void printAverageScore(ArrayListStudent students) { double allScore 0.0; double max students.get(0).getScore(); double min students.get(0).getScore(); for (int i 0; i students.size(); i) { Student s students.get(i); if(s.getScore() max) max s.getScore(); if(s.getScore() min) min s.getScore(); allScore s.getScore(); } System.out.println(学生的最高分是 max); System.out.println(学生的最低分是 min); System.out.println(平均分 (allScore - max - min) / (students.size() - 2)); } }5.再写一个班级管理类ClassManager在班级管理类中使用StudentOperator的实现类StudentOperatorImpl1对学生进行操作public class ClassManager { private ArrayListStudent students new ArrayList(); private StudentOperator studentOperator new StudentOperatorImpl1(); ​ public ClassManager(){ students.add(new Student(迪丽热巴, 女, 99)); students.add(new Student(古力娜扎, 女, 100)); students.add(new Student(马尔扎哈, 男, 80)); students.add(new Student(卡尔扎巴, 男, 60)); } ​ // 打印全班全部学生的信息 public void printInfo(){ studentOperator.printAllInfo(students); } ​ // 打印全班全部学生的平均分 public void printScore(){ studentOperator.printAverageScore(students); } }6.最后再写一个测试类Test在测试类中使用ClassMananger完成班级学生信息的管理。public class Test { public static void main(String[] args) { // 目标完成班级学生信息管理的案例。 ClassManager clazz new ClassManager(); clazz.printInfo(); clazz.printScore(); } }

更多文章