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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 江南小道士 中级黑马   /  2014-11-17 22:00  /  1228 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
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 是属于局部变量?还是属于成员变量?

8 个回复

倒序浏览
z是形式参数
回复 使用道具 举报
嘿嘿 好像是跟 editplus  有关 我也是 我写完的  我 能运行 发给 别人就运行不了
回复 使用道具 举报
夜海 发表于 2014-11-17 22:17
嘿嘿 好像是跟 editplus  有关 我也是 我写完的  我 能运行 发给 别人就运行不了  ...

难道是1.8的原因?

点评

让z++,编译看看效果.JDK1.8隐式地添加了final  发表于 2014-11-20 11:18
回复 使用道具 举报
可能是吧
回复 使用道具 举报

好办法,多谢版主亲自回复,有点激动哈,应该是JDK版本的原因吧
回复 使用道具 举报
DamonZh 来自手机 中级黑马 2014-11-20 12:09:26
7#
z属于局部变量 局部内部类想要访问的话 z必须被final修饰
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马