gpt4 book ai didi

java - Java中的静态变量是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 08:48:38 25 4
gpt4 key购买 nike

当执行下面的代码时

class Foo {

static int size = 7;

static void changeIt(int size) {
size = size + 200;
System.out.println("size in changeIt is " + size);
}

public static void main(String[] args) {

System.out.println("size = " + size);
changeIt(size);
System.out.println("size after changeIt is " + size);
}
}

答案是

size = 7
size in changeIt is 207
size after changeIt is 7

我期望的答案是

size  after changeIt is 207

为什么changeIt方法和main方法中静态变量的值不同?

最佳答案

Why the values of static variable is differing in the changeIt method and the main method ?

这些值不同,因为您没有更改static变量size,而是更改了局部变量size。将代码更改为:

static void changeIt() {
size = size + 200;
System.out.println("size in changeIt is " + size);
}

或者,如果您想使用具有相同名称的参数,您可以通过使用类名限定它来指定您正在使用 static 类变量:

static void changeIt(int size) {
Foo.size = size;
System.out.println("size in changeIt is " + Foo.size);
}

关于java - Java中的静态变量是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23046292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com