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

定义了一个全局整数变量j=0。在下面main主方法里调用Demo类里的add1的方法,循环十次调用add方法,让j自增。但是输出结果却是。

Java中一个方法调用另一个控制全局变量的方法_第1张图片

正常来说应该是先执行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();
    }
}

运行结果:

Java中一个方法调用另一个控制全局变量的方法_第2张图片

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

你可能感兴趣的:(Java中一个方法调用另一个控制全局变量的方法)