静的変数とは
静的変数は、グローバル変数とも呼ばれ、クラスの特定のインスタンスに属さないデータの一部です。 作成されるクラスオブジェクトの数に関係なく、これらの変数の値は1つだけ存在できます。 コンテキストに応じて、静的変数は、クラス変数の特定のオブジェクトごとに個別の値を持つインスタンス変数の対応変数よりも柔軟または制限的です。 オブジェクト指向プログラミング言語では、通常、優れたプログラミング手法により、静的オブジェクト、メソッド、または変数の使用を最小限に抑えることが求められますが、有用なアプリケーションがあります。
静的変数が制限的であると見なされる主な理由の1つは、変数に対して複数の値が存在できないためです。 変数への割り当ては以前のものを上書きし、以前の値の情報は失われます。 変数の複数のコピーがないと、複数のデータ値を保存できません。 値が変更された場合、影響を受けるすべてのオブジェクトは新しい値で機能する必要があり、古い値が削除されることを意図していなかった場合、変更は特定のクラスタイプのすべてのインスタンスオブジェクトに有害であることがわかります。 作成時に変数が何らかの形でロックされていない限り、予期しない変更のリスクとその後のオブジェクトの破壊により、一部のプログラマーは可能な限り静的変数を回避します。
静的変数は、制限的と呼ばれるのと同じ理由で、柔軟であると見なされる場合があります。 変数の値がロックされていなくても、その値の計画的な変更はプラスの効果をもたらす可能性があります。 クラスのすべてのオブジェクト間で共有される変数は、一貫性が保証されており、その値が常に同じであるという確信を持ってクラスの内外で使用できます。 静的な変数には、さまざまな便利なアプリケーションがあります。最も顕著なのは、定数の維持とシリアル化の実装です。 特にJavaは、この静的なシリアル化メカニズムに大きく依存しています。
プログラマーが静的変数を実装する際によく使用する特定の一般的な規則があります。 通常、これらの変数は小さなデータ値として最適に機能します。これは、大きな静的オブジェクトにより、プログラムが必要以上に厳格になる可能性があるためです。 小さなデータ値は、エラーを引き起こすことをあまり恐れることなく、迅速かつ簡単に変更できます。 大きな静的オブジェクトは、変更に時間と労力がかかり、すべてのクラスオブジェクトを混乱させるエラーが発生しやすくなります。 これらはガイドラインであり、壊れない規則ではありません。プログラムによっては、小さな変数と大きな変数の両方に用途がある場合があります。