Ruby - クラス変数

Advertisement

クラス変数

変数名の先頭に@@をつけると、その変数はクラス変数として扱われる。クラス変数は特定のクラスに属していて、クラスの得意メソッドや、そのクラスから生成されたインスタンスから参照することができる。

インスタンスをいくつ生成しても、クラス変数はひとつだけとなり、個々のインスタンスから共有される。

@@name = "his_name"

サンプルコード

sample.rb
class Sample
  @@sex = "man"
  def printSex
    print @@sex, "\n"
  end
  def setSex(sex)
    @@sex = sex
  end
end

sample = Sample.new
sample.printSex()
sample.setSex("woman")

sample2 = Sample.new
sample2.printSex()

結果
man
woman
sample, sample2が参照しているインスタンスは、互いに同じクラスから生成されている。よって、sample, sample2共に、変数@@sexは共有されることになる。
上記の例ではsampleとsample2が参照している@@sexが同じであることを示している。

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール