iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
自我挑戰組

轉職仔自學Java筆記本系列 第 17

物件導向設計與 Java

  • 分享至 

  • xImage
  •  

講到 Java 程式語言就不得不提到物件導向 (Object Oriented) 設計,Java 作爲一支純物件導向的程式語言,每一支 Java 程式基本上都是一個物件(或包含一個以上),透過執行物件的方法來發揮功能。

想偷懶的動力

在談論物件導向之前,我想先跳出來聊聊一些想法,以前讀書的時候曾聽老師分享過「想偷懶是人類科技進步的原動力」,第一次聽到的時候想當然而難以捉摸到這句話的意思,偷懶不是就意外著不去努力也不去實踐嗎?怎麼能驅使科技進步呢?確實如此,但「想偷懶」就不一樣了,想偷懶是盡量想少費一點工、多省一些時間達成相同的目標。回顧人類歷史,人們不想依靠雙腳步行,才想出了驅動獸力的馬車,後來進而發展出了蒸汽機取代人力,發展出汽車、火車與飛機等等,無非不是出自「想偷懶」的原動力,總之,「想偷懶」這件事應該是指去追求以最小的力氣去達到原有的或更佳品質目標。

物件導向設計的目的

而在程式設計的領域中,我認為物件導向的設計也與「想偷懶」的原動力有關,在開發的過程難免會因想偷懶去思考如何省去不要一直寫重複的程式碼,也會去想未來如果需要修改或是拓展,如果可以做最小幅度的修改就達成目標, 如果有想過這些問題,那「物件導向設計」也許就是解法之一。

物件導向設計普遍來說被認為有:

  • 重複使用性:減少重複的程式碼
  • 維護性:容易修改且不容易影響到其他程式碼既有功能
  • 拓展性:新增或調整時,大幅減少需要修改的程式碼

當然,通常符合物件導向的程式碼需要有更精密的去設計與實作,一開始耗費的時間心力比較多。

到這裡大概感受到物件導向的設計想做什麼事情了,那實際上,在程式碼中需要做哪些事才能達到上述的特性呢?

基本上,目標就是以「資料」為主體去組成物件 (object),然後讓物件有方法 (method) 可以對物件進行存取或操作來完成目標功能。要做到這些事在物件導向設計中提出了三個概念:

  1. 封裝 (Encapsulation)
  2. 繼承 (Inheritance)
  3. 多型 (Polymorphism)

之後幾天來好好討論吧。


上一篇
Modifiers 修飾符
下一篇
封裝 Encapsulation
系列文
轉職仔自學Java筆記本22
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言