public class StaticTest { public static int i=4; public void change(){ int i=5; }public static void main(String[] args) { new StaticTest().change(); System.out.println(i); }}为啥输出的是4?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 14:20:26

public class StaticTest { public static int i=4; public void change(){ int i=5; }
public static void main(String[] args) {

new StaticTest().change();
System.out.println(i);


}
}
为啥输出的是4?

在你这个程序中,change()方法里,你重新定义了一个局部变量i,并赋值5.而不是给StaticTest里的元素i赋值.如果你想改变StaticTest里的元素i,你的change方法不能声明变量i,而应该这样写
public void change(){i=5;}