黑马程序员技术交流社区

标题: 关于内部类的一些问题求解答!!!! [打印本页]

作者: 坤儿    时间: 2014-8-17 10:19
标题: 关于内部类的一些问题求解答!!!!
老毕视频里面说:局部内部类不能访问它所在的局部变量,只能访问局部常量。但为啥下面代码能访问局部变量。

class Outer1
{
        private int num = 0;
        public void show(int a)
        {
                int x = 1;
                class Inner
                {
                        public void function()
                        {
                                //System.out.println(num);//定义在外部类局部的内部类可以直接访问外部类的
                                                        //成员,因为内部类还持有外部内的引用
                                System.out.println(a);        //也可以直接访问局部变量
                                System.out.println(x);
                        }
                }
                 new Inner().function();
        }
}
public class InnerClassDemo2 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub

                Outer1 o = new Outer1();
                o.show(56);
        }

}
输出结果为 :  56  ,1
作者: 碎流    时间: 2014-8-17 10:56
你确定代码无有问题???
作者: 坤儿    时间: 2014-8-17 10:58
碎流 发表于 2014-8-17 10:56
你确定代码无有问题???

必须的  已经跑了多次
作者: 不再上网    时间: 2014-8-17 11:00
a和x变量是外部类的成员变量。
作者: 坤儿    时间: 2014-8-17 11:01
不再上网 发表于 2014-8-17 11:00
a和x变量是外部类的成员变量。

你确定 你看清楚了?
作者: 不再上网    时间: 2014-8-17 11:34
坤儿 发表于 2014-8-17 11:01
你确定 你看清楚了?

被你忽悠了。明明都编译错误的呀
作者: 坤儿    时间: 2014-8-17 11:39
不再上网 发表于 2014-8-17 11:34
被你忽悠了。明明都编译错误的呀

难道要让我给你开远程你才相信? 你用的java时多时?我的时java1.8 最新版那个。不知到是不是这个原因
作者: justin1258    时间: 2014-8-17 14:46
建议楼主看看编译后的字节码...
作者: 占星释    时间: 2014-8-17 18:00
http://blog.sina.cn/dpool/blog/s/blog_487bcddc01013e87.html?  这个链接你看看,可能有帮助。我觉得是有些代码不是不能写,而是写了之后会有问题
作者: 坤儿    时间: 2014-8-18 18:51
占星释 发表于 2014-8-17 18:00
http://blog.sina.cn/dpool/blog/s/blog_487bcddc01013e87.html?  这个链接你看看,可能有帮助。我觉得是有 ...

好的 谢谢
作者: 坤儿    时间: 2014-8-18 18:54
justin1258 发表于 2014-8-17 14:46
建议楼主看看编译后的字节码...

好的 谢谢




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