@634

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ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール