Object-Oriented Programming 物件導向程式設計
昨天寫的是方法/屬性的筆記,
今天想要回過頭,打一些程式基礎的概念,
來分享物件導向的三大特性之一,封裝。
(抱歉,新手筆記、分享順序都跳來跳去的)
恩恩....我們為什麼要寫程式語言?
以前我不太能夠理解這種,寫QB會有藍藍的畫面、
還有印出很多01010100010跟聖誕樹與九九乘法表。
二進位、十進位、十六進位算來算去的,迴圈、遞迴、陣列等等等
那個時候我覺得好無聊喔,這到底要做什麼?
跟數學習題算出幾隻雞幾隻兔子幾隻腳的感覺一樣。
我沒有邏輯腦袋,我就是喜歡美的東西,
我喜歡拍照、我喜歡排版,
我腦袋不好、我數學很差,阿我學這個要幹嘛?
恩....小時候不懂事。
長大之後發現,原來程式語言可以幫我們做很多事情。
程式和生活結合,更有效率的管理、更貼心的改善生活、更有想法的互動設計,
有時候強大的好像可以改變世界。
所以漸漸變得有趣起來,可能是在學校和業界的感覺很不一樣吧,概念的東西總是很抽象。
好,然後我又離題了,
總之我現在要筆記、物件導向的三個特性: 封裝、繼承、多型。
先來看封裝是什麼,
wiki上面有寫:
封裝(英語:Encapsulation)是指,
一種將抽象性函式介面的實作細節部份包裝、隱藏起來的方法。
老實說...
果然是很抽象阿...
抽象性函式介面的實作....
明明是中文,可是卻看不懂的感覺好難受。
上一篇文章用電風扇來舉例,本篇也繼續用電風扇
先來介紹,
類別是什麼?
類別是具有相同屬性和功能的物件集合。
例如:電風扇是一個類別。裡面有大小、尺寸、顏色、可以轉動、可以定時等屬性。
那物件就是大電扇、小電扇、立扇等等,
將電風扇類別實體化。
*實體化就是建立物件的過程
*實體就是一個真實的物件。
程式寫法(使用new關鍵字來建立。):
電風扇 我的電風扇=new 電風扇();
電風扇 我的電風扇=new 電風扇();→做了兩件事情
1.電風扇 我的電風扇//宣告一個電風扇類別的物件,名稱為"我的電風扇"
2.我的電風扇=new 電風扇()//將此"我的電風扇"物件實體化
將方法和屬性包裝在類別中,透過類別的實作來實現。
這種把方法和屬性放在類別裡面 叫做封裝。
將物件內的屬性都封裝起來,並提供一個單一對外存取的窗口,
任何物件要存取這個變數都必須透過這個窗口。
封裝的好處是什麼?
以下是維基百科的說明
適當的封裝,可以將物件使用介面的程式實作部份隱藏起來,不讓使用者看到,
同時確保使用者無法任意更改物件內部的重要資料。
它可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。
<待續>