本帖最后由 Monster 于 2015-6-10 20:40 编辑
y是局部变量,在所定义的一对{}内都有效。当Outer对象调用method方法时,y就在栈内存中开辟空间,当执行到代码new Inner()时,在同一块栈内存中开辟空间存储Inner对象的堆内存地址,Inner对象调用function方法时会再开辟一块栈内存,用于存储function反法中的局部变量,执行function反法时首先在function反法栈内存中查询y,找不到是再到对内存中寻找,应该还是会报错,如果在定义function方法时传递一个int y参数就不会报错。
|