Java中一个方法调用另一个控制全局变量的方法

在方法中调用另一个控制全局变量的方法不生效如何解决。举例说明。

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+"	");
        }
    }
}
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+"	");
        }
    }
}
public class DemoText {
    public static void main(String[] args) {
        Demo demo = new Demo();
        demo.add1();
    }
}

运行结果:

好了,这样就能成功输出了。

经验分享 程序员 微信小程序 职场和发展