iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
Software Development

Zero to Ruby on Rails系列 第 11

Day 11 - Object-Oriented Programming - part 2 物件導向程式設計(二)

  • 分享至 

  • xImage
  •  

初始化 initialize

在 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    # 會發⽣生引數個數錯誤

重複定義類別?

兩個同名的類別撞在一起不會覆蓋而是融合

開放類別 open class

幫現有的類別加功能,甚至內建的類別也做得到

class String 
  def use_ninjutsu
    "#{self} 使用風遁·大玉螺旋丸" 
  end
end

puts "鳴人".use_ninjutsu # 印出鳴人 使用風遁·大玉螺旋丸

Rails 大量的使用了開放類別的技巧,Rails = 在 Web 方面特化版的 Ruby,在後續的篇章中會有更多 Rails 的探討,這邊就先不多做說明

預告

Day 12 預計繼續介紹物件導向程式設計(三),我們明天見!


上一篇
Day 10 - Object-Oriented Programming - part 1 物件導向程式設計(一)
下一篇
Day 12 - Object-Oriented Programming - part 3 物件導向程式設計(三)
系列文
Zero to Ruby on Rails30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言