iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

自我挑戰Ruby系列 第 26

Day 26 - 類別與實體1

  • 分享至 

  • xImage
  •  

什麼是類別

例如說國民運動中心的會員卡,

可以藉由成為會員,

使用裡面不同的球類場地,

用來租借不同的球場,租羽球場,租桌球場,租壁球場,游泳…等。

其實類別的概念,就像是我們可以使用這些不同的服務,

租借球場…等各種不同服務的細項就像是各種方法一樣。

如何定義類別

我們會藉由class來定義,class 後面接類別名稱,

其類別名稱要以常數來命名,所以第一個英文字母要大寫。

class Card

end

如果以前面的例子而言,會變成:

class Card
  def rent_court(sport)
    puts "租#{sport}" 
  end

  def use
     puts "使用泳池"
  end
end

什麼是實體

以上述的例子而言,

加入國民運動中心的會員,

就會是一個實體的行為,

每個人都可以加入,

只要辦會員就可以實施。

會藉由指定一個變數讓他等於類別.new,

來產生一個新的實體,

例如會員姓名為Card.new後,

在藉由使用這個變數內的方法來體現。

上面的例子就可以寫成

arance = Card.new
arance.rent_court "羽球場"
arance.use

betty = Card.new
betty.rent_court "壁球場"
betty.use

初始化

利用初始化的概念,

可以在使用時把引數帶入至initalize使用,

例如上面的例子:

class Card

  def initialize(name)
    @name = name
  end

  def rent_court(sport)
    puts "#{@name}租#{sport}" 
  end

  def use
     puts "使用泳池"
  end
end

再將名字藉由new方法做實體的時候,

就可以將名字帶進去:

arance = Card.new("Arance")
arance.rent_court "羽球場"

這樣就可以顯示:Arance租羽球場。

實體變數

所謂的實體變數就是以@符號開頭的變數,

像上面的例子,@name就是一個實體變數。

然而實體變數,只能在實體方法內使用,

沒辦法而外定義,

例如:不能藉由arance.name = "Arance"來定義。


上一篇
Day 25 - 物件化區塊
下一篇
Day 27 - 類別與實體2
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言