本帖最后由 金鑫 于 2012-6-5 23:56 编辑
public class Temp {
int x=3;
public static void main(String[] args) {
int x=5;
System.out.println(x);
}
}
把外部的变量定义为普通变量,结果仍然是5;
class TEMP {
int i =3;
public static void fangfa(){
//在方法内定义一个普通变量,该普通变量会覆盖掉方法外部定义的变量 int i =3;
int i =6;
System.out.println(i);
}
public static void main(String[] args) {
fangfa();
}
}
调用fangfa(),输出的是6,方法内的局部变量会覆盖掉外部的int i =3;
无论你外部定义的 int i = 3是static修饰的成员变量还是普通变量,局部变量都会覆盖掉外部定义的变量。因为程序自上往下运行,与你定义的什么类型的变量无关。 |