既然是物件導向程式設計,那物件是什麼?
其實我覺得應該先搞懂這個。
趁著清明連假,先了解一些基礎,不然很多基礎搞不懂,根本只是個會寫code的人,因為我不懂它運作的原理。

類別:一張設計圖,藍圖,可以參考的文件,沒有實體的存在。
但在Ruby的世界裡,類別也是一個物件。
物件:看得到、摸得到的實體,屬於動態,但狀態隨時會改變。

在Ruby裡如何定義一個類別呢?

1
2
3
class Cat
  #...
end

這樣我們就定義了Cat 這個class(類別)
當然裡面可以定義很多methods(方法)

1
2
3
4
5
class Cat
  def eat(food)
    puts "#{food} 好好吃!"
  end
end

我們先定義一個 eat 這個方法。
接下來用 new方法來把 Cat類別創造出新的物件。

1
2
willy = Cat.new
willy.eat("罐頭") => 印出 [罐頭 好好吃!]

簡單來說,為什麼說類別是一張設計圖?
比方要蓋一棟房子,首先需要一張設計圖(類別)
那你要透過new出設計圖的房子(物件)
透過這樣簡單的的比喻,就可以把類別與物件分得比較清楚。

可能比喻的不是很好,再麻煩大家給我一些指教。

-W