Rubyリファレンス: Home

initialize

Edit   History

標準クラス・モジュール > Object > initialize

def initialize(arg, ...)
  code...
end

initializeメソッドは、オブジェクト(クラスのインスタンス)の初期化のためのメソッドです。クラスに対してnewメソッドを呼び出すと、newメソッドはインスタンスを作成し、そのインスタンスに対してinitializeを呼び出します。newに渡した引数は、そのままinitializeに渡されます。なお、initializeの戻り値は使われません。

自作のクラスでinitializeを定義すると、privateを使わなくても自動的にprivateなメソッドになります。

次のCatクラスのinitializeメソッドでは、newに渡された引数をインスタンス変数に代入しています。

class Cat
  def initialize(name, color)
    puts "initialize called!"
    @name = name; @color = color
  end
end
 
cat = Cat.new("Tama", "white")
initialize called!

詳細

クラスにinitializeメソッドがないときは、親クラスのinitializeが呼ばれます。Objectクラス(Ruby 1.9ではBasicObjectクラス)に実装されているinitializeは何もしないメソッドです。

new (String)new (Array)などの記事で解説しているnewメソッドの仕様は、実際には各クラスのインスタンスメソッドであるinitializeの仕様です。

関連項目