Rubyで使用されるinitializeメソッドはどんな役割があるかまとめてみました。
initializeメソッドはクラスがnewメソッドでインスタンス化した時に一度だけ実行されるメソッドです。
引数として必要なデータを渡すことで、インスタンスの中にデータを取り込んだりむことができます。
データを渡さずに、インスタンス化と同時に実行したい処理があるときにもこのメソッドを使います。
-記述の方法-
class クラス名
def initialize()
# ここにインスタンス化と同時に実行したい処理を記述
end
end
実際に記述してみましょう!
今回はCatクラスを作り、2匹の猫を設定しました。
class Cat
def initialize(name)
puts "実行されました"
@name = name
end
def eat
puts "美味しそうに#{@name}はご飯を食べました"
end
end
tama = Cat.new("タマ")
mike = Cat.new("ミケ")
tama.eat
mike.eat
-実行結果-
実行されました
実行されました
美味しそうにタマはご飯を食べました
美味しそうにミケはご飯を食べました
なぜこの順番で結果が出力されたのでしょう?
最初にtama = Cat.new("タマ")が実行されたと同時にinitializeもメソッド内に定義されたputs "実行されました"が表示されます。
mike = Cat.new("ミケ")も同様にインスタンス化されたと同時にputs "実行されました"が表示されます。
次にtama.eatでCatクラス内で定義したeatメソッドが実行され、美味しそうにタマはご飯を食べましたが表示されます。
mike.eatも同様でeatメソッドが実行され、美味しそうにミケはご飯を食べましたが表示されます。