前言:
自己在嘗試解釋程式碼的過程中,有感於自己的基礎觀念不夠紮實,夾帶了一些似是而非的錯誤觀念,所以決定趁這個機會重新理解物件導向,把混淆釐清、把概念確立,所以筆者也會盡可能做最詳盡的探討,當然是以清楚明白好咀嚼的方式來呈現。
如果在探討課題的過程中,有不正確或有疑慮的地方,也歡迎於下方留言討論,感謝您!!
本篇擷取重點:
一、什麼是物件導向
二、物件導向的優點(目的)
三、物件導向程式設計的三大基本特性
一、什麼是物件導向
物件導向(Object Oriented,簡稱OO)程式最重要的特點,就是所有程式執行時期的功能,都需要由物件提供,所以程式需要有各種物件,每種物件負責執行不同的功能。
但是這些程式中的物件,並非憑空建立出來;必須透過事先設計好的「類別 (Class) 」,才可以根據類別的定義建立物件實體,執行物件提供的功能。因此,你也可以說「物件導向的程式,是由類別構成的」。
二、物件導向的優點(目的)
==================================================================
貼心小補充:
參考資料:
https://rayfly0225.wordpress.com/2016/06/20/c%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91object-oriented%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E6%80%9D%E7%B6%AD/
(推薦,內有物件導向及程序導向的範例,可幫助我們理解)
https://www.delightpress.com.tw/bookRead/skup00007_read.pdf
https://dotblogs.com.tw/alanlun/2016/03/01/231422
==================================================================
三、物件導向程式設計的三大基本特性:
首先,封裝讓程式碼易於理解。我們可以從一個類別的名稱以及他的行為去理解與記憶它和系統之間的關係與責任,這樣的特性可以縮短日後我們重新檢視程式碼時所要花費的時間。
繼承讓程式碼可以重複使用。就以車子、汽車與卡車的例子來說吧。我們把大部分重複的程式碼寫在車子的類別裡,以後的十種汽車跟八種卡車都可以直接享用車子中已經定義好的程式碼與功能。我們因此縮短了浪費在重複性工作上的時間。
多型讓程式易於擴充與維護。針對共通的介面來撰寫程式時,可以使得物件之間的關係被鬆綁,讓軟體在日後進行擴充或者個別物件修改時不需要更動到既有的程式碼。
參考資料:
https://www.ithome.com.tw/node/45903
https://blog.xuite.net/janet.jaja/1/103668432-%E8%A9%B1%E8%AA%AA%E5%BE%9E%E9%A0%AD+-+%E7%82%BA%E4%BB%80%E9%BA%BC%E8%A6%81%E4%BD%BF%E7%94%A8%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E8%A8%AD%E8%A8%88+%28OOD%29
==================================================================
貼心小補充:
封裝、繼承、多型這三者是有次序性的,沒有封裝就不可能有繼承、沒有繼承就不可能有多型。只支援封裝的語言稱為Object-Based語言(例如傳統的Visual Basic);同時支援封裝、繼承、多型的語言才能稱為OO語言(例如我們使用的 C#)。
==================================================================
明天預定探討課題為: