在Java中,为什么局部变量不能隐藏而全局变量可以? 例如:
public class Hello {
static int x = 10;
public static void foo() {
int x = 20; // Hides the global variable with the value of "20" within the
method foo.
}
}
但这不可能:
public class Hello {
public static void foo() {
int x = 20;
int y = 1;
if(x >= 20) {
int y = 10; // Cannot hide this
}
}
我知道我无法隐藏在更内部的局部作用域中具有局部作用域的变量,但问题是为什么会发生这种情况?是因为Java的设计方式吗?还有其他类似的异常(exception)吗?
最佳答案
当局部变量和全局变量同名时,局部变量优先于全局变量。
如果你想打印局部变量的值,那么可以使用this运算符来完成。'this'不会被编译器添加,我们需要显式添加它来指定实例变量。
关于Java 为什么局部变量不能隐藏而全局变量可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47375606/