1、创建内部类
public class ClassA{class ClassB{}public static void main(String[] args){ClassB c = new ClassB();}}
2、链接到外部类
public class ClassA{private int i = 0;private Object[] items;class ClassB{public boolean end(){return i == items.length()}}public static void main(String[] args){ClassB c = new ClassB();c.end();}}
虽然 i 和 items都是外部类ClassA的成员,但是内部类ClassB也可以访问。
3、内部类访问外部类
.this 可以返回当前外部类对象的引用public class ClassA{private int i = 0;private Object[] items;class ClassB{public ClassA outer(){return ClassA.this}public boolean end(){return i == items.length()}}public static void main(String[] args){ClassB c = new ClassB();c.end();}}
4、内部类访问外部类
.new 创建内部类对象public class ClassA{private int i = 0;private Object[] items;class ClassB{public ClassA outer(){return ClassA.this}public boolean end(){return i == items.length()}}public static void main(String[] args){ClassA a = new ClassA();ClassA.ClassB b = a.new ClassB();}}
创建内部类对象不能直接创建,需要先创建个外部类对象,然后外部类对象后面加.new 再加内部类构造器才可以创建。(静态内部类不需要)
5、局部内部类
(1)方法的作用域内创建一个完整的类,这被称为局部内部类。
6、匿名内部类
public class ClassA{public ClassB classB(){return new ClassB(){private int i = 0;public int value(){return i;}};}public void main(String[] args){ClassA a = new ClassA();}}
