51,408
社区成员
发帖
与我相关
我的任务
分享
public class Foo {
static int i = 0;
static int j = 0;
public static void main(String[] args) {
int i = 2;
int k = 3;
{
int j = 3;
System.out.println("i + j is " + i + j);
}
k = i + j;
System.out.println("k is " + k);
System.out.println("j is " + j);
}
}
为什么j刚被赋值了3,又变回了0?
作用域的问题
明白了,谢谢各位大佬
如果局部变量的名字与全局变量的名字相同,则在局部变量的作用范围内全局变量被隐藏,即这个全局变量在同名局部变量所在方法内暂时失效。如果在局部变量的作用域范围内访问该成员变量,则必须使用关键字this来引用成员变量
局部变量,只作用于所在代码块(即一个大括号),局部变量没有初始值,从定义到所属代码块结束