黑马程序员技术交流社区

标题: 关于匿名内部类的问题 [打印本页]

作者: 荒丶    时间: 2016-4-5 23:24
标题: 关于匿名内部类的问题
class Demo_Package {
        //测试为什么局部类使用局部变量时,要把局部变量声明成final?
        public static void main(String[] args){
                Outer o = new Outer();
                o.method();
        }
}

class Outer {
        public void method() {
                int num = 10;
                class Inner {
                        public void print(){
                                System.out.print(num);
                        }
                }
                Inner i = new Inner();
                i.print();
        }
}

因为只有把变量放在常量池,那么在类被释放的时候.这个变量才能保存.才可以继续使用.但是在JDK1.8这个特性改了下常量池机制,  把这种只改变一次的变量自动视为常量.所以1.8就算不定义final也可以调用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2