rubyオブジェクト指向(3)イニシャライザ

イニシャライザとはオブジェクトをインスタンス化するときに初回だけ呼び出される特別なメソッドです。オブジェクトを使う側でnewを呼び出したときに、そのオブジェクトの初期化として呼び出されます。
イニシャライザは省略可能です。名称はinitializeにします。メソッドと違う点は戻り値を定義できません。メソッドと同じ点は引数を定義できます。

class Hoge 
  def initialize
    p "init calling" 
  end
end

h = Hoge.new #・・・newしたタイミングで呼ばれる
#結果:
"init calling"

イニシャライザで何をやらせるかは、プログラマーの自由ですが、大体は、そのオブジェクトで使う変数の代入に使用します。なのでイニシャライザに引数を与えることが多いです。

class Hoge
  def initialize(taxrate)
    @taxrate = taxrate
  end
end

f = Hoge.new(0.08) # newの時に引数を渡せる

@が付いた変数はインスタンス変数と言って、オブジェクト指向プログラミングでは頻繁に出てきます。この話題はのちのち取り上げます。

この記事が気に入ったらサポートをしてみませんか?