A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 123412 中级黑马   /  2015-3-23 18:57  /  896 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 123412 于 2015-3-24 16:24 编辑

我们都知道,在局部内部类中要想访问局部内部类所在的函数中的局部变量时,这个局部变量前要加fianl修饰符,否则是访问不了的,那为什么我的下边的这个程序能访问呢?
class Testthree
{
        public static void main(String[] args)
        {
        new Outer().show();
        new Outer().show();
        //地下这两种方式是不能行通的
        //new Outer().show().Inner().show2();
        //new Outer().Inner().show2();
        }
}
class Outer
{
        int age=3;
         void show()
        {
                //此时的变量num必须是被final修饰符修饰的,如不是,则不能被
                //调用。
            int b=4;
                int num=2;
                class Inner
                {
                         void show2()
                        {
                        System.out.println("b="+b);
                        System.out.println("num="+num);
                        System.out.println("age="+age);
                        System.out.println("这是局部内部类中的内容!");
                        }
                }
                new Inner().show2();
        }
}

求解求解

1 个回复

倒序浏览
这个怎么没有人回复呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马