静态变量和方法

2023-12-19

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

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是假的,所以它设置started为真,然后……嗯,某事。第二次及以后被调用时,started是 true,所以它返回而不做任何事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态变量和方法 的相关文章

随机推荐