Java基础知识总结梳理(二)
Java基础知识重点知识梳理第二篇,所梳理内容是为个人理解整理,方便学习之用,分享给大家一起学习,欢迎评论区交流讨论;Java基础整体框架图见Java基础知识总结梳理(一)
- 内部类
内部类顾名思义,创建在类的内部的类,本质仍是一个类;
内部类的分类:局部内部类、匿名内部类、成员内部类、静态内部类;
- 局部内部类:
定义在方法内部,相当于局部变量,不能使用public 、protected、private以及static修饰符。但是可以使用final修饰符; - 匿名内部类:
顾名思义,匿名内部类没有类名😀;
本质是一个类,不能有访问修饰符和static修饰符;
匿名内部类是唯一一种没有构造器的类;
一般使用匿名内部类的方法来编写事件监听代码;
使用场景:类只使用一次,后面不再使用(匿名内部类用户简化开发); - 成员内部类:
类比成员方法,成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员);
在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,在通过指向这个对象的引用来访问;
要创建成员内部类的对象,前提是必须存在一个外部类的对象;
内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限;
成员内部类中不能存在任何static的变量和方法,可以定义常量; - 静态内部类:
静态内部类是static修饰内部类,静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似,并且它不能使用外部类的非static成员变量或方法;
内部类整理的重点知识框架图如下:
- 内部类的优点与特性
- 能够非常好的解决多重继承的问题
- 内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立
- 在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类
- 创建内部类对象的时刻并不依赖于外围对象的创建
- 内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体
- 内部类提供了更好的封装,除了改外围类,其他类都不能访问
-
抽象类
我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法 的类就是抽象类。总的来说就是:
抽象方法:没有方法体的方法
抽象类:包含抽象方法的类
- 抽象类注意点:
- 抽象类不能实例化
- 抽象类不一定要包含abstract方法
- 一旦包含了abstract方法,则这个类必须声明为abstract
- abstract只能修饰类和方法,不能修饰属性和其他的
- 抽象类可以有任意成员【抽象类本质还是类】,比如非抽象方法、构造器、静态属性等等
- 抽象方法不能有主体,即不能实现
- 如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
- 抽象方法不能使用priavte、final和static来修饰,因为这些关键字和重写是相违背的
- 接口
接口声明了一组能力,但它自己并没有实现这个能力,它只是一个约定
接口的格式定义如下:public interface 接口名{ 代码块; }
- 接口使用注意事项:
参考资料:
【1】https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.337.search-card.all.click&vd_source=dd9bdf6f42e38406b07ef92b986e8171