在 Ruby 中,initialize 方法用於設定物件的初始狀態,建立一個類別的實體(物件)時,Ruby 會自動調用這個方法,以便對該物件進行任何必要的初始化,包括設定物件的屬性(實體變數)以及執行一些可能需要的操作。
class Pirate
def initialize
puts "我要成為海賊王"
end
end
luffy = Pirate.new # 什麼都不用做,⼀new出來就要成為海賊王
new 的時候也可以順便帶東西給它:
class Pirate
def initialize(name, age)
@name = name
@age = age
end
end
luffy = Pirate.new("luffy", 19)
new 與 initialize
class Pirate
def initialize(name, age)
@name = name
@age = age
end
end
luffy = Pirate.new # 會發⽣生引數個數錯誤
兩個同名的類別撞在一起不會覆蓋而是融合
幫現有的類別加功能,甚至內建的類別也做得到
class String
def use_ninjutsu
"#{self} 使用風遁·大玉螺旋丸"
end
end
puts "鳴人".use_ninjutsu # 印出鳴人 使用風遁·大玉螺旋丸
Rails 大量的使用了開放類別的技巧,Rails = 在 Web 方面特化版的 Ruby,在後續的篇章中會有更多 Rails 的探討,這邊就先不多做說明
Day 12 預計繼續介紹物件導向程式設計(三),我們明天見!