物件是什麼?




生活中的物件


「物件」,顧名思義就是一個物體。讓我們想想,當我們想要描述一個物體的時候,我們會怎麼描述?我們可以描述那個物體的長、寬、高、顏色、重量、形狀等。以上這些用來描述一個物體的東西,稱為該物體的「屬性」(property)。

除了物體的屬性之外,我們還會想到一個問題:「我們該如何使用這個物體?」例如,杯子可以用來裝水、喝水、砸碎等。我們稱這些功能「方法」(method)。


程式中的物件


假設你今天要告訴你朋友一棟大樓的高度,你會說「杯子高度是 30 」。在程式中,這也是相同的概念,把這句話在程式中寫出來,就會變成:

杯子.高度 = 30;

其中,「.」就代表「的」。那麼我們要怎麼執行物件的那些方法呢?假設我們用剛剛的例子,要砸破一個杯子,那我們要怎麼表達呢?

杯子.砸破();

如此,我們可以很清楚的看出「砸破」是「杯子」這個物件的方法,因為我們知道「()」代表動詞,也就是「砸破」是一個動作。


類別


想想看,如果我們今天要製造 100 個杯子,各自有不同的屬性,但都只有相同的功能。那難道我們要把 100 個杯子的每個程式都寫出來嗎?這樣就太麻煩了。為了解決這個問題,以前的電腦工程師發明了一種東西——類別(class)。

這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。


類別的使用


每一個杯子,因為有不同的屬性,因此個個都是不同的物件,但是儘管如此,它們都是同一種類別,稱作杯子。現在我們就來告訴電腦產生一個叫做「杯子」的類別,並且告訴電腦杯子的屬性與方法:

類別 杯子{
    長;
    寬;
    高;
    顏色;
    重量;
    形狀;
    裝水();
    喝水();
    砸碎();
}

這麼一來,每次我們需要用到杯子這種東西時,我們就可以不用定義「裝水」、「砸碎」等這些重複的功能,只要告訴電腦他們特別的地方就好了。現在讓我們來做三個杯子吧!

杯子 大水壺;
杯子 馬克杯;
杯子 紙杯;

這樣,我們就成功地讓電腦做出三個杯子了,是不是很簡單呢?


類別與物件


看了這麼多,所以到底類別跟物件的差別是什麼呢?以剛剛的例子來看,「杯子」就是類別;而「大水壺」、「馬克杯」、「紙杯」則是物件。用最簡單的方法來記憶:類別是物件的種類,物件是一個個獨立的物體




class  類別
object  物件
property  屬性
method  方法
上一章節
下一章節
使用者分享的影片來自 YouTube。瞭解更多
+1 
感謝內容貢獻者 此篇文章由 1 位使用者共同編輯而成,並且由學呀的編輯團隊負責維護。點此查看編輯者名單。