gpt4 book ai didi

java - 静态变量和方法

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:50 24 4
gpt4 key购买 nike

我遇到了一个这样设置的类:

public class MyClass {

private static boolean started = false;

private MyClass(){
}

public static void doSomething(){
if(started){
return;
}
started = true;
//code below that is only supposed to run
//run if not started
}
}

我对静态方法的理解是,你不应该在其中使用类变量,除非它们是常量,并且不会改变。相反,您应该使用参数。我的问题是为什么通过执行 MyClass.doSomething() 多次调用时这不会中断。在我看来它不应该起作用但确实有效。它只会通过 if 语句一次。

那么谁能向我解释为什么这不会中断?

最佳答案

方法 doSomething() 和变量 started 都是静态的,所以变量只有一个副本,可以从 doSomething() 访问。第一次调用 doSomething() 时,started 为 false,因此它将 started 设置为 true,然后执行...嗯,某事。第二次及后续调用时,started 为真,因此它不执行任何操作就返回。

关于java - 静态变量和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606196/

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