initializeメソッドの使い方
インスタンスメソッドの中で initialize と言う名前が付けられたメソッドは特別なメソッドで、インスタンスが生成されるときに自動的に initialize メソッドが呼び出されます。ここでは Ruby で initialize メソッドの使い方について解説します。
(Last modified: )
initializeメソッドを定義する
initialize メソッドは次のように定義します。
class クラス名
def initialize()
処理
end
end
initialize メソッドはインスタンス
initializeメソッドを定義しておくと、インスタンスの生成時に必ず実行したい処理をメソッドを呼び出すことなく実行することができます。例えば次の例では initialize メソッドの中でインスタンス変数を初期化しています。
class Car
def initialize()
@name = "未定義"
end
end
car = Car.new()
これは initialize メソッドを使わずに通常のインスタンスメソッドを使って次のように記述した場合と同じです。
class Car
def init()
@name = "未定義"
end
end
car = Car.new()
car.init()
initialize メソッドを使うことで必ず実行すべき初期化処理などを行わせることができるようになります。
initializeメソッドに引数を指定する
「initialize メソッドには引数を指定することができます。
class クラス名
def initialize(変数1, 変数2, ...)
処理
end
end
他のメソッドと同じく initialize メソッドも呼びだす時に引数を指定して呼び出すことでメソッドに値を渡すことができます。 initialize メソッドは自動的に呼び出されるメソッドですので initialize メソッドに渡す値はクラスメソッドの new メソッドの引数に指定します。
class Car
def initialize(carname)
@name = carname
end
end
car = Car.new("civic")
また他のメソッドと同じく引数に初期値を設定することも可能です。
class Car
def initialize(carname="未定義")
@name = carname
end
end
car1 = Car.new("civic")
car2 = Car.new()
では実際に試してみます。
# encoding: UTF-8
class Car
def initialize(carname="未定義")
@name = carname
end
def dispName()
puts(@name)
end
end
car1 = Car.new("lexus")
car2 = Car.new()
car1.dispName()
car2.dispName()
上記を実行すると次のように表示されます。
-- --
Ruby で initialize メソッドの使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。