欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

千锋逆战班学习日志

程序员文章站 2022-06-02 22:51:34
...


千锋逆战班学习第19天
努力或许没有收获,但不努力一定没收获,加油。
今天我复习了Java课程的接口,并学习了内部类。
中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!!

总结-接口

  1. 接口的多态:不再关注具体类型,而是关注行为。
  2. 常见关系:
    • 类与类:
      • 单继承
      • extends 父类名称
    • 类与接口
      • 多实现
      • Implements 接口名1,接口名2,接口名n
    • 接口与接口
      • 多继承
      • extends 父接口1,父接口,父接口n
  3. 常量接口
    • 将多个常用于状态或固定值的变量,以静态常量的形式定义在接口中统一管理,提高代码可读性。
  4. 宏观概念:接口是一种标准。
    耦合度:模块与模块之间的关联程度,关联的越密切,耦合越高,关联的越松散,耦合越低。
  5. 接口回调:先有接口的使用者,后有接口的实现类。
  6. 接口的好处
    (1)程序的耦合度降低。
    (2)更自然的使用多态。
    (3)设计与实现完全分离。
    (4)更容易搭建程序框架。
    (5)更容易更换具体实现。
    千锋逆战班学习日志
    千锋逆战班学习日志

总结-内部类

  1. 概念:在一个类的内部在定义一个完整的类。
  2. 特点:
  • 编译之后可生成独立的字节码文件。
  • 内部类可以直接访问外部类的私有成员,而不破坏封装。
  • 可为外部类提供必要的内部功能组件。
  1. 成员内部类:
  • 在类的内部定义,与实例变量、实例方法同级别的类。
  • 外面类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
    • 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;
	}
}
相关标签: 学习总结