黑马程序员技术交流社区

标题: 对于大括号的使用问题 [打印本页]

作者: 申请补助没成功    时间: 2015-11-6 13:13
标题: 对于大括号的使用问题
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);//
        }
}

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

很详细的解答{:2_32:},谢谢,理解了
作者: 大自然的搬运工    时间: 2015-11-8 00:45
申请补助没成功 发表于 2015-11-7 23:16
很详细的解答,谢谢,理解了

不客气
作者: zyh1578814923    时间: 2015-11-8 14:22
大括号中的定义叫做局部代码块




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