本帖最后由 123412 于 2015-3-24 16:24 编辑
我们都知道,在局部内部类中要想访问局部内部类所在的函数中的局部变量时,这个局部变量前要加fianl修饰符,否则是访问不了的,那为什么我的下边的这个程序能访问呢?
class Testthree
{
public static void main(String[] args)
{
new Outer().show();
new Outer().show();
//地下这两种方式是不能行通的
//new Outer().show().Inner().show2();
//new Outer().Inner().show2();
}
}
class Outer
{
int age=3;
void show()
{
//此时的变量num必须是被final修饰符修饰的,如不是,则不能被
//调用。
int b=4;
int num=2;
class Inner
{
void show2()
{
System.out.println("b="+b);
System.out.println("num="+num);
System.out.println("age="+age);
System.out.println("这是局部内部类中的内容!");
}
}
new Inner().show2();
}
}
求解求解 |
|