10.22
成员内部类:在类的内部定义的类,它可以访问外部类的成员变量和方法。例如,class Outer {private int num; class Inner { public void print () { System.out.println (num); } } }。创建成员内部类的对象需要通过外部类的对象,如 Outer outer = new Outer (); Outer.Inner inner = outer.new Inner ();。
静态内部类:用 static 修饰的内部类,它不能访问外部类的非静态成员。创建静态内部类的对象不需要外部类的对象,如 Outer.Inner inner = new Outer.Inner ();。
局部内部类:在方法或代码块内定义的类,它的作用域仅限于该方法或代码块。局部内部类可以访问外部类的成员变量和方法,以及方法的局部变量(局部变量必须是 final 类型,Java 8 之后可以是隐式 final)。