原文:"可以直接访问外部类中的成员,因为还持有外部类中的作用。但是不可以访问它所在的局部类中的变量。只能访问被final修饰的局部变量。"
那么问题来了:我没有使用final修饰,为什么也编译成功了,也成功打印了???难道我哪里做错了?还是版本不一样?小白求助!
代码如下:
class Outer
{
int x = 3;
void method(int a) //注释:毕老师讲的在int前应该加个final修饰下,不然访问不了,但为什么在我这不加final也成功访问了?
{
int y=4; //如果要打印y的值的话也要加上final,但是我没加也是成功打印了
class Inner
{
void function()
{
System.out.println(a);
}
}
new Inner().function();
}
}
class Demo
{
public static void main(String[] args)
{
new Outer().method(4);
}
}
|