在方法中调用另一个控制全局变量的方法不生效如何解决。举例说明。
class Demo {
int j = 0;
public void add() {
j++;
}
public void add1() {
Demo demo = new Demo();
for (int i = 1; i <= 10; i++) {
demo.add();
System.out.print(j+"\t");
}
}
}
public class DemoText {
public static void main(String[] args) {
Demo demo = new Demo();
demo.add1();
}
}
定义了一个全局整数变量j=0。在下面main主方法里调用Demo类里的add1的方法,循环十次调用add方法,让j自增。但是输出结果却是。
正常来说应该是先执行add方法让j自增,然后将自增后的值输出,但是j一直没有变化是0。所以这个时候需要将j定义为静态变量,也就是定义为static int j=0。
class Demo {
static int j = 0;
public void add() {
j++;
}
public void add1() {
Demo demo = new Demo();
for (int i = 1; i <= 10; i++) {
demo.add();
System.out.print(j+"\t");
}
}
}
public class DemoText {
public static void main(String[] args) {
Demo demo = new Demo();
demo.add1();
}
}
运行结果:
好了,这样就能成功输出了。