内部类定义在局部位置上
也可以直接访问外部类中的成员。
同时可以访问所在局部中的局部变量,但必须是被final修饰的。
*内部类直接访问外部类的原理:因为内部类持有了外部类的引用。外部类名.this
代码展示:
class Outer
{
private int num = 4;
//内部类。
class Inner
{
int num = 5;
void show()
{
int num = 6;
System.out.println("inner show "+Outer.this.num);
}
}
void method()
{
Inner in = new Inner();
in.show();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer out = new Outer();
out.method();
}
}
*注意:当内部类中定义了静态成员,该内部类必须是static 的。
当外部类中的静态方法访问内部类时,该内部类必须是静态的