2、局部内部类
在方法中定义的内部类是局部内部类,它只能访问方法中的final类型的局部变量,因为用final定义的局部变量相当于是一个常量,延长了其生命周期,使得方法在消亡时,其内部类仍可以访问该变量。另外,它同样也可以引用定义在外部类的变量和方法。而且方法体中的局部内部类不允许有访问修饰符。
class Outer
{
int num=10;
public void print(final int aArgs)
{
class Inner
{
int num=20;
public Inner()
{
System.out.println("This is Inner.");//此句可看出它与匿名内部类用法的不同。
}
public void print()
{
int num=30;
System.out.println(this); // the object created from the local Inner
System.out.println(num);
System.out.println(this.num);
System.out.println(Outer.this.num);
System.out.println(aArgs);
}
}
Inner inner=new Inner();//此句必须放在定义类Inner的后面
inner.print();
}
public static void main(String[] args)
{
Outer outer=new Outer();
outer.print(40);
}
} |