カテゴリー
Ruby

クラス変数について知ろう

この章ではクラス変数について説明します。
変数名の前に@@が付いた変数はクラス変数と呼ばれています。
クラス変数はインスタンス変数のようにインスタンスに属する変数と違ってクラスに属しています。
では例をみてみましょう。99999 前の章では変数名の前に@@が付いた変数はクラス変数であると説明しましたが、この例では@@count1がクラス変数です。このクラス変数はクラスの中のメソッドではない箇所で宣言します。
この例ではオブジェクトを2つ以下のように作っています。9 インスタンス変数の場合はこの2つのオブジェクト間ではインスタンス変数の値を共有できません。まったく別個のインスタンス変数になります。
これとは逆にクラス変数はクラスに属しているので、オブジェクトごとにクラス変数の値が変わるわけではありません。どんなに新しいオブジェクトを作成してもクラス変数を共有して使用することが出来ます。
以下の箇所ではオブジェクトを作成するたびにクラス変数であるcount1に1を足しています。9 そして、以下の箇所でそれぞれのオブジェクトでcountメソッドを呼び出していますが、出力するとクラス変数@@count1がカウントされているのが解ります。9 結果は以下の通りです。9