クラス変数
クラス変数はクラスから生成される全てのインスタンスで共有可能な特徴を持つ変数である。この特徴を生かしたクラス変数の代表的な用途は以下の通り。
定数 クラスと関連を持つ定数の定義に使用できる。 処理系の実装にもよるが、通常、クラス変数はクラスがロードされた際にメモリ上に確保され、そのメモリを全てのインスタンスが共有する。よって、メモリ使用量が節約できるメリットがある。 定数であることを明示的に示すため、定数に用いるクラス変数は読み取り専用にすることが望ましい。
クラスの状態の保持 あるクラスのインスタンス全てから共有可能な「クラスの状態」を表す変数の定義に使用できる。 クラスの状態の保持の代表例として、Singleton パターンでシングルトンオブジェクトを記憶する変数が挙げられる。 Singleton パターンでクラス変数を用いる場合、初めて生成されるインスタンスをクラス変数と関連付けて「そのクラスのインスタンスが生成済みである」というクラスの状態を保持する。