什麼是物件導向?

物件導向(object-oriented),其實是「物件導向程式設計」較簡短的說法
由於物件導向可以很抽象,也可以很具體,端你看怎麼敘述
為了讓大家比較好理解,作者會大量使用現實生活中我們常見的事物「類比」程式的設計方式

舉例來說,生活中常常可以看到許許多多的物體,在程式中我們稱為物件
像是房屋、汽車、電腦、手機,甚至人都是不同的物件

「物體」和「物件」這兩個詞基本上是一樣的,只是使用的情境不太一樣
在日常的對話中我們會使用「物體」,而在程式語言中的敘述我們會使用「物件」
但兩個詞表示的是一樣的東西

而這些物件都有3種特性

  • 狀態(state):
    物件的狀態指的是「物件本身所包含的資訊」
    比如人有姓名、身高等等資訊,貓/狗有體重、毛色等等資訊,或是汽車的顏色、目前剩下多少油等等資訊

  • 行為(behavior):
    物件的行為,或是物件提供的操作
    比如說貓狗可以奔跑、叫,或是汽車可以發動、加速、熄火等等

  • 身份唯一(identity):
    每個物件都是唯一的,假設你有養一隻哈士奇,而世界上也有非常多隻哈士奇
    但是你養的哈士奇是世界上唯一的,沒有任何一隻哈士奇是你家養的那一隻

將上述的物件用表格呈現物件特性:

狀態 行為
汽車 車身顏色、剩下的汽油量 發動、加速、熄火
電腦 硬體規格、種類(筆電、桌電...) 開機、輸入資料、關機
手機 螢幕尺寸、儲存容量 響鈴、通話、拍照
膚色、眼睛大小、頭髮顏色、身高 吃飯、睡覺、慢跑
貓/狗 品種、重量、 叫(喵/汪)

講了那麼多,那麼什麼是物件導向?
用作者的話來說,物件導向就是「用世界中物體的特性跟使用方式來設計程式」
也可以說是「用程式來模擬真實世界物體的特性和使用方式」
看不太懂沒關係,我們先繼續往下看其他的文章
大致了解後再回來看看這句話,你可能會更有感覺

程式新手常常會認為物件導向只是一種程式的「寫法」
但作者個人認為這麼說並非完全正確
物件導向只是一種「概念」或是「想法」,而我們運用這個「概念」跟「想法」來設計並撰寫程式
就算不用物件導向,也能夠寫出能跑出一樣結果的程式

那麼為什麼物件導向是目前的程式設計的主流呢?
大致上能夠歸納成2個原因:

  • 物件的觀念與想法跟我們的生活息息相關,是一種比較讓人容易理解的描述方式。
  • 物件導向程式設計的架構,讓程式更有彈性,在未來較容易維護與修改程式碼

results matching ""

    No results matching ""