千锋逆战班学习日志


千锋逆战班学习第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;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值