千锋逆战班学习日志
程序员文章站
2022-06-02 22:51:34
...
千锋逆战班学习第19天
千锋逆战班学习第19天
努力或许没有收获,但不努力一定没收获,加油。
今天我复习了Java课程的接口,并学习了内部类。
中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!!
总结-接口
- 接口的多态:不再关注具体类型,而是关注行为。
- 常见关系:
- 类与类:
- 单继承
- extends 父类名称
- 类与接口
- 多实现
- Implements 接口名1,接口名2,接口名n
- 接口与接口
- 多继承
- extends 父接口1,父接口,父接口n
- 类与类:
- 常量接口
- 将多个常用于状态或固定值的变量,以静态常量的形式定义在接口中统一管理,提高代码可读性。
- 宏观概念:接口是一种标准。
耦合度:模块与模块之间的关联程度,关联的越密切,耦合越高,关联的越松散,耦合越低。 - 接口回调:先有接口的使用者,后有接口的实现类。
- 接口的好处
(1)程序的耦合度降低。
(2)更自然的使用多态。
(3)设计与实现完全分离。
(4)更容易搭建程序框架。
(5)更容易更换具体实现。
总结-内部类
- 概念:在一个类的内部在定义一个完整的类。
- 特点:
- 编译之后可生成独立的字节码文件。
- 内部类可以直接访问外部类的私有成员,而不破坏封装。
- 可为外部类提供必要的内部功能组件。
- 成员内部类:
- 在类的内部定义,与实例变量、实例方法同级别的类。
- 外面类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
- Outer out = new Outer();
- Outer.Inner in = out.new Inner();
- 当外部类、内部类存在重名属性时,会优先访问内部类属性。
- 成员内部类不能定义静态成员。
练习——学生类数组排序
接口
public interface Comparable<T> {
//this与传入的值比较
//负数:this靠前,stu靠后
//正数:this靠后,stu靠前
//零:不变
public int compareTo(T stu);
}
使用者
public class TestSort {//默认升序
public static void sort(Student[] stu) {
for(int i = 0 ;i < stu.length - 1; i++) {
Comparable cstu = (Comparable)stu[i];
int n = cstu.compareTo(stu[i + 1]);
if(n > 0) {
Student temp = stu[i];
stu[i] = stu[i + 1];
stu[i + 1] = temp;
}
}
}
}
接口的实现者
class Student implements Comparable<Student>{
String name;
int age;
String sex;
double score;
public Student() {}
public Student(String name, int age, String sex, double score) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.score = score;
}
@Override
public int compareTo(Student stu) {
if(this.score > stu.score) {
return 1;
}else if(this.score < stu.score){
return -1;
}
return 0;
}
}
上一篇: 豆浆的配比和制作方法你都知道多少呢
下一篇: 那些大多数人都不知道的苞谷棒作用