読み方 : クラスへんすう

クラス変数【class variable】静的メンバ変数

別名  :static member variable/静的フィールド/static field/静的プロパティ/static property

クラス変数とは?

オブジェクト指向プログラミングで、個々のインスタンスではなくクラスそのものに属する変数のこと。実体がクラスにつき一つだけ存在し、そのクラスおよび派生クラスから生成されたすべてのインスタンスによって共有される
クラス変数のイメージ画像

クラス変数はクラスの定義において宣言される変数の一つで、プログラムの実行時には、クラスロードまたは初期化される段階でメモリ上に一つの領域が確保され、そのクラスに属するすべてのインスタンスから同一の値として参照される。あるインスタンスがクラス変数の値を変更すると、他のすべてのインスタンスから見た値も同時に変化する。

典型的な用途として、生成されたインスタンスの総数を追跡するカウンター変数が挙げられる。たとえば「ユーザー」クラスにクラス変数「総ユーザー数」を定義しておけば、インスタンスが生成されるたびにその値を増やすことで、どのインスタンスからも現在の総数を参照できる。定数の定義にも広く用いられ、クラス全体で共通して使う固定値をクラス変数として一か所にまとめる設計は可読性保守性の向上に寄与する。

言語によって定義方法は異なる。Javaではstatic修飾子を付けて宣言するため「静的フィールド」「staticフィールド」とも呼ばれる。Pythonではクラス定義のブロック内かつメソッドの外側に変数を記述することでクラス変数として扱われる。クラス継承した場合の挙動も言語によって異なり、親クラスに定義されたクラス変数は子クラス継承されて同一の変数として共有される場合や、再定義によって独立した値を持つ場合がある。

これに対して、各インスタンスごとに独立した記憶領域を持つ変数は「インスタンス変数」という。「メンバ変数」「フィールド」「プロパティ」などと呼ばれ、同じ変数名でもインスタンスごとに別個の値を保持する。インスタンスに紐づく情報を管理したり、当座の処理に必要な値を保持する変数にはこちらが用いられる。

他の辞典等による「クラス変数」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。