10.1创建内部类
·内部类:将一个类的定义放在另一个类的定义内部
·外部类中使用内部类:
·实例成员中使用内部类:和使用普通类没差别
·静态成员中使用内部类:要指明对象的类型,OuterClassName.InnerClassName
10.2链接到外部类
·内部类可以访问外部类的所有成员
·迭代器模式
10.3使用.this与.new
·.this:OuterClass.this,指代外部类对象的引用
·.new:outerClassObject.new InnerClass();创建某个内部类对象
·普通内部类和外部类之间其实就好比寄生关系。必须先创建外部类的对象,才能创建内部类对象
10.4内部类与向上转型
·内部类向上转型为其基类,尤其是转型为一个接口,那么这个内部类在外部类以外的地方看来是完全隐藏的
10.5在方法和作用域内的内部类(局部内部类)
10.6匿名内部类
·final参数:如果希望一个匿名内部类使用一个定义在外部的对象,那么编译器会要求其参数引用是final的。
10.7嵌套类(静态内部类)
·外部类中创建内部类对象:就像调用static方法一样
·外部类以外的地方创建内部类对象:OuterClassName.innerClassName inner = new OuterClassName.InnerClassName();直接导包也行
10.8为什么需要内部类
·闭包与回调
·内部类与控制框架
10.9内部类的继承
· X extends Y.Inner
10.10内部类可以被覆盖吗
·不存在,完全是两个独立的内部类
10.11局部内部类
·局部内部类不能有访问说明符
10.12 内部类标识符:$