次のように設定されたクラスに出くわしました:
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 ステートメントを一度だけ渡します。
では、なぜこれが壊れないのか、誰かが私に説明できますか?