[Day14] 大家認識這位嗎?革命軍「東軍」軍隊長-貝洛貝蒂,她的鼓舞果實能力可以讓周遭的人全都變成有戰鬥力的單位,簡直就是類別方法啊!
在看完昨天有趣的模組後,今天想要重新回到類別(Class)這個大主題,來跟大家介紹類別方法和實體方法的差異。
那就開始吧!
實體方法
顧名思義,實體方法(instance method)就是作用在實體上的方法。基本上,類別裡面一般都會是實體方法,但我這邊還是重新快速帶一下觀念。
舉個例子,像是知名的電商網站叫 Shopee,在這個網站註冊的會員,都可以使用 Shopee 提供的服務:購買商品、上架販售等等。
我們來看看程式會怎麼寫上面這段話:
1 | class Shopee |
類別方法
要定義類別方法有好幾種方式,我最常用的是在方法名稱的前加上 self.
1 | class Army |
如果要定義很多類別方法,也可以這樣寫:
1 | class Army |
為什麼要有類別方法?什麼時候用?
通常我們要直接請類別幫忙時,就會使用類別方法。換句話說,當我們確定這個方法和特定實體不會有關係,而是要在整個類別操作,就會考慮使用類別方法。
初始化
最後,來向大家介紹一個特別的方法「初始化(initialize)」這又是什麼?很像是重灌電腦時才會聽到的單字,是不是覺得有點危險呢?
其實在 Ruby 的類別裡, initialize
指的是:在類別產生實體當下就會立刻執行的方法,也可以想成是寶寶一出生就會做的第一件事(?)
1 | class Baby |
Wow!寶寶一出生就會 Hello World 了!看來絕對是當工程師的料啊!
(喂!寶寶在哭了!!!)
今天就先到這邊了!希望大家都有看懂類別方法在做什麼,也希望五倍的大家可以順利完賽!(信心喊話)