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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 有陷阱快跑丶 中级黑马   /  2014-11-16 22:20  /  1610 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Outer
{
        int num = 3;
        void method()
        {
                int y = 6;
                class Inner
                {       
                        void show()
                        {
                                System.out.println(y);
                        }
                }
                new Inner().show();

        }
}





class  InnerDemo4
{
        public static void main(String[] args)
        {
                        Outer o = new Outer();
                        o.method();
        }
}

- -我没有final 局部变量啊  为啥能编译运行

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

17 个回复

倒序浏览
必须加final的,不加的话编译会报错,我用你的代码直接编译的

1.jpg (26.32 KB, 下载次数: 27)

1.jpg
回复 使用道具 举报
hailong 发表于 2014-11-16 22:36
必须加final的,不加的话编译会报错,我用你的代码直接编译的

- -为啥我哦这里直接通过了啊  不能忍啊 :Q
回复 使用道具 举报
有陷阱快跑丶 发表于 2014-11-16 22:50
- -为啥我哦这里直接通过了啊  不能忍啊

你再重新编译试一下,这个肯定是需要加final的,如果不加的话无论是用命令行编译还是用eclipse都是会报错的
回复 使用道具 举报
hailong 发表于 2014-11-16 22:53
你再重新编译试一下,这个肯定是需要加final的,如果不加的话无论是用命令行编译还是用eclipse都是会报错 ...

恩恩  我试下  你早点睡哈
回复 使用道具 举报
有陷阱快跑丶 发表于 2014-11-16 22:50
- -为啥我哦这里直接通过了啊  不能忍啊

我怎么跟你一样啊,能编译通过:funk:

QQ截图20141116230537.png (116.97 KB, 下载次数: 27)

QQ截图20141116230537.png
回复 使用道具 举报
hailong 中级黑马 2014-11-16 23:25:03
7#
本帖最后由 hailong 于 2014-11-16 23:26 编辑
完美是芬 发表于 2014-11-16 23:06
我怎么跟你一样啊,能编译通过

呃。。。这我就不知道是什么情况了,我这里命令行和eclipse全都会报错的,你的运行结果正确吗?
回复 使用道具 举报
必须加final修饰
回复 使用道具 举报
完美是芬 发表于 2014-11-16 23:06
我怎么跟你一样啊,能编译通过

是啊  好神奇:)
回复 使用道具 举报
MR.Sun 中级黑马 2014-11-16 23:49:25
10#
编译通过的都是使用的JDK1.8的  在1.8中  是默认加上final的     我以前也问过这个问题  

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3 赞一个!

查看全部评分

回复 使用道具 举报 2 0
MR.Sun 发表于 2014-11-16 23:49
编译通过的都是使用的JDK1.8的  在1.8中  是默认加上final的     我以前也问过这个问题   ...

额额  了解了   谢谢解惑:lol
回复 使用道具 举报
MR.Sun 中级黑马 2014-11-17 00:01:23
12#
有陷阱快跑丶 发表于 2014-11-16 23:59
额额  了解了   谢谢解惑

没事,以前我也跟你一样 也是差不多这个时候纠结这东西,  同道中人啊 准备去哪一期
回复 使用道具 举报
编译不能通过,你装的应该是JDK1.8,JDK1.8默认加final了
回复 使用道具 举报
MR.Sun 发表于 2014-11-17 00:01
没事,以前我也跟你一样 也是差不多这个时候纠结这东西,  同道中人啊 准备去哪一期 ...

深圳54期额  压力大啊  没基础 正在自学中:P
回复 使用道具 举报
田峻菘 发表于 2014-11-17 00:01
编译不能通过,你装的应该是JDK1.8,JDK1.8默认加final了

恩恩。。
回复 使用道具 举报
cbb 中级黑马 2014-11-17 08:32:07
16#
这个是个特列  访问成员变量时 外部类名.this.变量名   
访问局部变量是需要局部变量加上final修饰的。不然就报错~~
回复 使用道具 举报
可能要看看你们的编译器的版本和JRE的版本了
回复 使用道具 举报
MR.Sun 发表于 2014-11-17 00:01
没事,以前我也跟你一样 也是差不多这个时候纠结这东西,  同道中人啊 准备去哪一期 ...

你学了多久?你进哪一期了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马