feat(class30,class32): 接口定义,实现类
- 在 class30 包中添加了接口 A 和 B,以及实现类 C 和测试类 Test - 在 class32 包中添加了学生信息处理的接口和实现类,包括 ClassDataInter、ClassDataInterImpl1、ClassDataInterImpl2 和 Student 类 - 实现了学生信息的打印和平均分计算等功能
This commit is contained in:
10
src/class30/A.java
Normal file
10
src/class30/A.java
Normal file
@@ -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();
|
||||
}
|
||||
5
src/class30/B.java
Normal file
5
src/class30/B.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package class30;
|
||||
|
||||
public interface B {
|
||||
void play();
|
||||
}
|
||||
30
src/class30/Test.java
Normal file
30
src/class30/Test.java
Normal file
@@ -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() {
|
||||
|
||||
}
|
||||
}
|
||||
6
src/class32/ClassDataInter.java
Normal file
6
src/class32/ClassDataInter.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package class32;
|
||||
|
||||
public interface ClassDataInter {
|
||||
void printAllStudentInfos();
|
||||
void printAverageScore();
|
||||
}
|
||||
24
src/class32/ClassDataInterImpl1.java
Normal file
24
src/class32/ClassDataInterImpl1.java
Normal file
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
38
src/class32/ClassDataInterImpl2.java
Normal file
38
src/class32/ClassDataInterImpl2.java
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
14
src/class32/Student.java
Normal file
14
src/class32/Student.java
Normal file
@@ -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;
|
||||
|
||||
}
|
||||
26
src/class32/Test.java
Normal file
26
src/class32/Test.java
Normal file
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user