两段Java代码如下:12345678public class Test { public static void main(String[] args) { { int x = 19; } int x = 9; }}
|
|
问题:第一条程序没有报错,第二条程序报错了,这是为什么呢?
—————解决思路——————
作用域的问题啊。。。{}里是一个作用域,这个作用域结束以后的代码是访问不到作用域里面的局部变量的。但是作用域里面可以访问到作用域外面定义的变量。
第一段代码里面,定义int a = 9;的时候,之前的变量int a = 19.已经随着作用域的结束已经消失了。所以没问题。
而第二段代码,在作用域里面定义int a = 9;的时候,作用域外已经定义了int a = 19;这个时候作用域内部也是访问的到的,所以不能再次定义一个变量int a,否则就重复了。
本文为网友分享,不保证正确!若侵权请联系我们删除!