第10章 内部类

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 内部类标识符:$

原文地址:https://www.cnblogs.com/InformationGod/p/8522841.html