黑马程序员技术交流社区

标题: 内部类在局部时,访问原则 [打印本页]

作者: 江南小道士    时间: 2014-11-17 22:00
标题: 内部类在局部时,访问原则
代码如下:
class InnerClassDemo3
{
        public static void main(String[] args)
        {
                Outer out = new Outer();
                out.method(5);
                out.method(6);
        }
}

class Outer
{
        int x = 3;

        void method(int z)
        {
                final int NUM = 4;
                class Inner
                {
                        void function()
                        {
                                System.out.println("x="+x);
                                System.out.println("NUM="+NUM);
                                System.out.println("z="+z);
                        }
                }
                new Inner().function();
        }
}

按毕老师所说,z应该被final修饰,但我并没有加final,运行也OK啊。
那么在这里z 是属于局部变量?还是属于成员变量?
作者: yangyujoe    时间: 2014-11-17 22:06
z是形式参数
作者: 夜海    时间: 2014-11-17 22:17
嘿嘿 好像是跟 editplus  有关 我也是 我写完的  我 能运行 发给 别人就运行不了
作者: 江南小道士    时间: 2014-11-20 03:26
夜海 发表于 2014-11-17 22:17
嘿嘿 好像是跟 editplus  有关 我也是 我写完的  我 能运行 发给 别人就运行不了  ...

难道是1.8的原因?
作者: zhangyangLengen    时间: 2014-11-20 08:38
可能是吧
作者: 江南小道士    时间: 2014-11-20 12:01
江南小道士 发表于 2014-11-20 03:26
难道是1.8的原因?

好办法,多谢版主亲自回复,有点激动哈,应该是JDK版本的原因吧
作者: DamonZh    时间: 2014-11-20 12:09
z属于局部变量 局部内部类想要访问的话 z必须被final修饰




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