尚未建立名稱
能量:0
我的帳號中心
問 學Bot 任何問題!
首頁&搜尋
最愛&收藏
所有課程
分享資源
帳號設定
關於學呀
線上募款
物件的概念
編輯章節
EDU-MD
Google 教室
加至書籤
# 物件是什麼? ![](https://miro.medium.com/max/600/1*0ttFuc9a8RMCQxCbrNeMNg.png) ## 生活中的物件 「物件」,顧名思義就是一個物體。讓我們想想,當我們想要描述一個物體的時候,我們會怎麼描述?我們可以**描述**那個物體的長、寬、高、顏色、重量、形狀等。以上這些用來描述一個物體的東西,稱為該物體的「**屬性**」(property)。 除了物體的屬性之外,我們還會想到一個問題:「我們該如何**使用**這個物體?」例如,杯子可以用來裝水、喝水、砸碎等。我們稱這些功能「**方法**」(method)。 ## 程式中的物件 假設你今天要告訴你朋友一棟大樓的高度,你會說「杯子**的**高度是 30 」。在程式中,這也是相同的概念,把這句話在程式中寫出來,就會變成: ``` 杯子.高度 = 30; ``` 其中,**「.」就代表「的」**。那麼我們要怎麼執行物件的那些方法呢?假設我們用剛剛的例子,要砸破一個杯子,那我們要怎麼表達呢? ``` 杯子.砸破(); ``` 如此,我們可以很清楚的看出「砸破」是「杯子」這個物件的方法,因為我們知道「()」代表動詞,也就是「砸破」是一個動作。 # 類別 想想看,如果我們今天要製造 100 個杯子,各自有不同的屬性,但都只有相同的功能。那難道我們要把 100 個杯子的每個程式都寫出來嗎?這樣就太麻煩了。為了解決這個問題,以前的電腦工程師發明了一種東西——**類別**(class)。 ::: suggestion 這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。 ::: ## 類別的使用 每一個杯子,因為有不同的屬性,因此個個都是不同的物件,但是儘管如此,它們都是同一種類別,稱作杯子。現在我們就來告訴電腦產生一個叫做「杯子」的類別,並且告訴電腦杯子的屬性與方法: ``` 類別 杯子{ 長; 寬; 高; 顏色; 重量; 形狀; 裝水(); 喝水(); 砸碎(); } ``` 這麼一來,每次我們需要用到杯子這種東西時,我們就可以不用定義「裝水」、「砸碎」等這些重複的功能,只要告訴電腦他們特別的地方就好了。現在讓我們來做三個杯子吧! ``` 杯子 大水壺; 杯子 馬克杯; 杯子 紙杯; ``` 這樣,我們就成功地讓電腦做出三個杯子了,是不是很簡單呢? ## 類別與物件 看了這麼多,所以到底類別跟物件的差別是什麼呢?以剛剛的例子來看,「杯子」就是類別;而「大水壺」、「馬克杯」、「紙杯」則是物件。用最簡單的方法來記憶:**類別是物件的種類,物件是一個個獨立的物體**。 ![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRj1Q7AU12y645IqibO7aThPQsuXWhTN8a-G6BZ96q_oZZclLC-) ::: translation class 類別 object 物件 property 屬性 method 方法 :::
複製內容