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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class        Demo05_1
{
        public static void main(String[] args)
        {
                int x=5;
                {
                //int x=0;//报错提示,x已经被定义
                int y=8;
                System.out.println("x="+x);
                System.out.println("y="+y);
                }
                y=x;//报错,提示找不到符号。说明y还没有被定义。
                //问:{}中代码算什么代码,是不是外面的可以影响里面的,里面的不能影响外面的?
                System.out.println("y="+y);//
        }
}

11 个回复

倒序浏览
这个确实值得思考啊,我考虑下{:3_46:}
回复 使用道具 举报
有难度,来个大神解释解释吧!
回复 使用道具 举报
应该是代码块{}中定义的变量只在代码块{}中有作用。代码块外面访问的时候就会报异常。 在这个主函数中的代码块中持有局部变量x的引用,所以再生命x变量时,会报错,重复使用变量名
回复 使用道具 举报
大括号中的定义叫做局部代码块,里面定义的变量生命周期以大括号开始而开始,以大括号结束而结束,当括号到达}时,里面所有的变量弹栈。  
里面可以访问外面的属性和方法,并且可以改变值,外面先定义的变量,里面不可以定义,重复定义。里面定义的变量,在他下面的外部代码可以重复定义,不是同一个变量,因为括号里的变量执行完弹栈。
局部代码块可用于 只用一次的计算,需要好多变量,放在局部代码块中,只把结果保留。这样节省内存。
回复 使用道具 举报
这个有点意思
回复 使用道具 举报
这个得认真商榷一下
回复 使用道具 举报
来跟着学习下。。。
回复 使用道具 举报
学习咯。。。。。。。。。。。
回复 使用道具 举报
大自然的搬运工 发表于 2015-11-6 14:42
大括号中的定义叫做局部代码块,里面定义的变量生命周期以大括号开始而开始,以大括号结束而结束,当括号到 ...

很详细的解答{:2_32:},谢谢,理解了
回复 使用道具 举报
申请补助没成功 发表于 2015-11-7 23:16
很详细的解答,谢谢,理解了

不客气
回复 使用道具 举报
大括号中的定义叫做局部代码块
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马