黑马程序员技术交流社区

标题: 为什么局部内部类访问局部变量不加final也可以? [打印本页]

作者: 李大壮    时间: 2014-8-15 18:13
标题: 为什么局部内部类访问局部变量不加final也可以?
class Outer{
       
        void function()
        {
                 int x=4;//方法的局部变量        没有加final也能运行出结果啊
                //内部类
            class Inner{
                    //内部类的方法
                    void add()
                    {
                            System.out.print(x+4); //调用外部类方法中的局部变量
                    }
                   
            }
            new Inner().add();//创建个内部类的对象
           
        }
       
}
public class InnerClassDemo {

        public static void main(String[] args) {
       
                Outer o=new Outer();//创建外部类对象并将 o的引用指向该变量的地址
                  o.function();//
        }
}

作者: 黑马_java猿    时间: 2014-8-15 21:24
你这是Jdk1.8吧?
   1.8默认加了final不用手动加的
  你可以试试给x改值试试  
  应该会报错




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