关于代码块中的变量的作用域

关于代码块中的变量的作用域

public void method() {
    {
        String name = "马云";
        System.out.println("这是1688的地盘");
    }
    {
        String name = "马化腾";
        System.out.println("这是企鹅家的地盘");
    }
    String name = "李彦宏";
}

在代码块中变量是不是类似于 es6 的作用域一样,在代码块内的变量只在代码块内有效,出了代码块就没有效了,另外如上面的代码所示,当代码块内的变量在两个代码块的下面时程序是合法的吗,那么为什么在两个代码块的下面是合法的,在代码块中间定义了同名的变量似乎是报错的呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,代码块中的变量是在代码块内的变量只在代码块内有效,出了代码块就没有效了。

变量是有作用域的,出了作用域就无效了,一个{}表示一个作用域,当出了标识为1的作用域,name无效,自然就可以在标识为2的作用域重新定义了~

http://img1.sycdn.imooc.com//climg/5cda37ff0001b97a06000207.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~



问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师