例如說國民運動中心的會員卡,
可以藉由成為會員,
使用裡面不同的球類場地,
用來租借不同的球場,租羽球場,租桌球場,租壁球場,游泳…等。
其實類別的概念,就像是我們可以使用這些不同的服務,
租借球場…等各種不同服務的細項就像是各種方法一樣。
我們會藉由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"來定義。