diff --git a/src/class30/A.java b/src/class30/A.java new file mode 100644 index 0000000..1a554ba --- /dev/null +++ b/src/class30/A.java @@ -0,0 +1,10 @@ +package class30; + +public interface A { + // JDK8之前,接口中只能定义常量和抽象方法 + String SCHOOL_NAME = "黑马程序员"; +// public static final String SCHOOL_NAME = "黑马程序员"; // 可省略String的前缀 +// public abstract void run(); // 可省略abstract + void run(); + String go(); +} diff --git a/src/class30/B.java b/src/class30/B.java new file mode 100644 index 0000000..8261fb1 --- /dev/null +++ b/src/class30/B.java @@ -0,0 +1,5 @@ +package class30; + +public interface B { + void play(); +} diff --git a/src/class30/Test.java b/src/class30/Test.java new file mode 100644 index 0000000..f7e64e4 --- /dev/null +++ b/src/class30/Test.java @@ -0,0 +1,30 @@ +package class30; + +public class Test { + public static void main(String[] args) { + C c = new C(); + c.run(); + c.go(); + c.play(); + + } + +} +//实现类实现多个接口,必须重写接口中所有的抽象方法 +class C implements A, B { + + @Override + public void run() { + + } + + @Override + public String go() { + return ""; + } + + @Override + public void play() { + + } +} diff --git a/src/class32/ClassDataInter.java b/src/class32/ClassDataInter.java new file mode 100644 index 0000000..ed095b7 --- /dev/null +++ b/src/class32/ClassDataInter.java @@ -0,0 +1,6 @@ +package class32; + +public interface ClassDataInter { + void printAllStudentInfos(); + void printAverageScore(); +} diff --git a/src/class32/ClassDataInterImpl1.java b/src/class32/ClassDataInterImpl1.java new file mode 100644 index 0000000..0fe4f22 --- /dev/null +++ b/src/class32/ClassDataInterImpl1.java @@ -0,0 +1,24 @@ +package class32; + +public class ClassDataInterImpl1 implements ClassDataInter { + private final Student[] students; + public ClassDataInterImpl1(Student[] students) { + this.students = students; + } + @Override + public void printAllStudentInfos() { + for (Student student : students) { + System.out.println(student.getName() + " " + student.getSex() + " " + student.getScore()); + } + } + + @Override + public void printAverageScore() { + double sum = 0; + for (Student student : students) { + sum += student.getScore(); + } + System.out.println("平均分是:" + sum / students.length); + + } +} \ No newline at end of file diff --git a/src/class32/ClassDataInterImpl2.java b/src/class32/ClassDataInterImpl2.java new file mode 100644 index 0000000..ecfa1b1 --- /dev/null +++ b/src/class32/ClassDataInterImpl2.java @@ -0,0 +1,38 @@ +package class32; +public class ClassDataInterImpl2 implements ClassDataInter { + private final Student[] students; + public ClassDataInterImpl2(Student[] students) { + this.students = students; + } + @Override + public void printAllStudentInfos() { + int maleCount = 0; + + for (Student student : students) { + if (student.getSex() == '男') { + maleCount++; + } + } + System.out.println("男性人数是:" + maleCount); + System.out.println("女性人数是:" + (students.length - maleCount)); + } + + @Override + public void printAverageScore() { + double sum = 0; + double max = students[0].getScore(); + double min = students[0].getScore(); + for (Student student : students) { + sum += student.getScore(); + if (max < student.getScore()) { + max = student.getScore(); + } + if (min > student.getScore()) { + min = student.getScore(); + } + } + System.out.println("平均分是:" + (sum - max - min) / (students.length - 2)); + System.out.println("最高分是:" + max); + System.out.println("最低分是:" + min); + } +} \ No newline at end of file diff --git a/src/class32/Student.java b/src/class32/Student.java new file mode 100644 index 0000000..27f2dfc --- /dev/null +++ b/src/class32/Student.java @@ -0,0 +1,14 @@ +package class32; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Student { + private String name; + private char sex; + private double score; + +} diff --git a/src/class32/Test.java b/src/class32/Test.java new file mode 100644 index 0000000..043b626 --- /dev/null +++ b/src/class32/Test.java @@ -0,0 +1,26 @@ +package class32; + +public class Test { + public static void main(String[] args) { + //目标:完成接口的小案例 + //1.定义学生类,创建学生对象,封装学生数据,才能交给别人处理 + //2.准备学生数据,目前我们自己造一些数据 + Student[] students = new Student[10]; + students[0] = new Student("小王", '男', 90); + students[1] = new Student("小王", '男', 90); + students[2] = new Student("小王", '男', 90); + students[3] = new Student("小王", '男', 90); + students[4] = new Student("小王", '男', 90); + students[5] = new Student("小王", '男', 90); + students[6] = new Student("小王", '男', 90); + students[7] = new Student("小王", '男', 90); + students[8] = new Student("小王", '男', 90); + students[9] = new Student("小王", '男', 90); + ClassDataInter cdi = new ClassDataInterImpl1(students); + cdi.printAllStudentInfos(); + cdi.printAverageScore(); + ClassDataInter cdi2 = new ClassDataInterImpl2(students); + cdi2.printAllStudentInfos(); + cdi2.printAverageScore(); + } +}