物件導向程式設計有三大特性:封裝、繼承、多型,今天要來介紹封裝。
封裝顧名思義就是把屬性封在類別裡面,不讓外界隨意存取類別的屬性,
意思就是說只有同個類別的方法可以存取被封裝的屬性。而封裝需要用到
Private,Private跟Public的差別如下:
public:所有類都可以存取
private:只能在它自己的類中存取
所以說,封裝後的資料會是隱藏的,如果有必要存取,要用getter、setter
getter:返回對象的狀態
setter:為對象的狀態設置一個值
例如:getX() 和getY() 是getter; setX() 和 setY() 是 setter。
以下有一個範例:將昨天得程式範例用封裝來實作
Step1 先把宣告的函數全部private起來
Setp2 用getter將每個物件get()起來,並return回原本宣告的物件名稱,如下圖所示。
Step3 用setter將每個物件set(),方法如下。
Step4 將main方法裡面要用到封裝過的物件用class名稱 . set物件名稱(),來取得封裝過的物件。
Step5 area比較特別,因為他要使用到前面的height跟base來乘,所以set完area後,後面要get() area 跟 height,才可以執行乘的動作,如下圖所示。
Step6 最後get area 印出來。
程式執行結果和昨天一樣
程式全碼如下