Java期末复习速成(七)
文章目录
- Java期末复习速成(七)
- 内部类
-
- 集合
-
- lterable接口
- 顶层接口
-
- ArrayList
- Vector
- LinkedList类
- Stack
- HashSet
- TreeSet
- LinkedHashSet 类
- PriorityQueue
- HashMap
- TreeMap类
- LinkedHashMap类
- Hashtable类
- ldentityHashMap类
- WeakHashMap类
- Collections类
- 集合实现类特征图
内部类
距今为止,我们了解的都是普通类的定义,那就是直接在IDEA中直接新建一个class。
文章图片
新建完成后,你就会拥有一个class文件的定义,这种操作太简单了,时间长了就会枯燥,我们年轻人多需要更新潮和骚气的写法,好吧,既然你提到了那就使用内部类吧,这是一种有用而且骚气的定义类的方式,内部类的定义非常简单︰可以将一个类的定义放在另一个类的内部,这就是内部类。
内部类是一种非常有用的特性,定义在类内部的类,持有外部类的引用,但却对其他外部类不可见,看起来就像是一种隐藏代码的机制,就和弗兰奇将军似的,弗兰奇可以和弗兰奇将军进行通讯,但是外面的敌人却无法直接攻击到弗兰奇本体。
文章图片
下面我们就来聊一聊创建内部类的方式。
创建内部类 定义内部类非常简单,就是直接将一个类定义在外围类的里面,如下代码所示
public class OuterClass {
private String name;
private int age;
class InnerClass{
public InnerClass(){
name = "cxuan";
age = 25;
}
}
}
在这段代码中,InnerClass 就是OuterClass 的一个内部类。也就是说,每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。这也是隐藏了内部实现细节。内部类拥有外部类的访问权
内部类不仅仅能够定义在类的内部,还可以定义在方法和作用域内部,这种被称为局部内部类,除此之外,还有匿名内部类、内部类可以实现Java 中的 多重继承。下面是定义内部类的方式
- 一个在方法中定义的类(局部内部类)
- 一个定义在作用域内的类,这个作用域在方法的内部(成员内部类)
- 一个实现了接口的匿名类(匿名内部类)
- 一个匿名类,它扩展了非默认构造器的类.一个匿名类,执行字段初始化操作
- 一个匿名类,它通过实例初始化实现构造
由于每个类都会产生一个 .class 文件,其中包含了如何创建该类型的对象的全部信息,那么,如何表示内部类的信息呢?可以使用 $ 来表示,比如OuterClass$InnerClass.class
集合 集合在我们的日常开发中所使用的次数简直太多了,你已经把它们都用的熟透了,但是作为一名合格的程序员,你不仅要了解它的基本用法,你还要了解它的源码;
存在即合理,你还要了解它是如何设计和实现的,你还要了解它的衍生过程。
这篇博客就来详细介绍一下Collection这个庞大集合框架的家族体系和成员,让你了解它的设计与实现。
是时候祭出这张神图了
文章图片
首先来介绍的就是列表爷爷辈儿的接口 - Iterator
lterable接口 实现此接口允许对象成为for-each 循环的目标,也就是增强for 循环,它是Java中的一种语法糖
List