本帖最后由 yangfengxiao 于 2012-9-30 10:01 编辑
- class Outer {
- void show() {
- final int num = 5; 为什么num要定义成final呢?? 别人的解释如下。方法中的局部变量在栈中被创建;当方法调用结束时,释放栈空间。内部类对象生命期是和其它类一样,创建一个局部内部类对象后,当没有其它类再引用时,它才释放。所以局部类的对象生命期会超过局部变量。
- 现在的问题是。关于内部类对象和局部变量的生命周期在我代码中是如何体现呢?或者以别的方式给我讲懂吧~~~
- class Inner {
- void fun() {
- System.out.println(num);
- }
- }
- Inner in = new Inner();
- in.fun();
- }
- }
- public class Test {
- public static void main(String[] args) {
- Outer out = new Outer();
- out.show();
- }
- }
复制代码 |