封裝(Encapsulation)
介紹完物件導向的基本概念以後,首先要來跟大家介紹甚麼是封裝。
封裝(Encapsulation) 指的是把有必要的內容對外來公開,沒有必要讓別人看到的內容則隱藏起來。
舉例來說,就好像一家大公司,他的大廳是所有人都可以去的地方,所以說大廳會客這是公開的,而公司有很多機密資料,這些存放機密資料的電腦不能隨便讓人使用,都是只有特定的員工或是主管可以使用,所以使用機密資料電腦就是不公開的,另外還有一種情況,公司裡面每個部門的某些電腦可能是可以同一部門的人使用,提供同一個部門的人來查詢資料,或是開會時做簡報,但是別的部門的人就不能使用,所以使用XX部門公用電腦這件事情他的權限是同一部門內都可以用。
上面這個例子就說明了封裝這件事情,封裝分成三種情況public、protected、private.
public:公開讓任何人都可以使用。
protected:同一個群組的人可以使用。
private:只有特定的人可以使用,外界不能用。
甚麼是public?就像我上面所舉的例子,在公司中大廳是公開所有人都可以去的地方,大廳會客是所有人都可以做的,這就叫做public。使用公司裡面機密資料電腦僅僅只有特定的人可以做,其他人都不能做,這就是private。公司裡面的部門電腦只有該部門的人可以用,其他人都不能使用,因為只有同一個群組的人可以做,不是這個群組的人就不能做,這種情況就是protected。
在物件導向程式設計中,封裝的目的是只提供使用者必要的介面,把實作內容隱藏,就好像我今天使用電視遙控器,我只會看到按鈕,電視遙控器的電路板則是隱藏起來了,因為電視遙控器的運作原理不必給使用者知道,這就是封裝在日常生活中的例子。
封裝的三種情況public、protected、private在物件導向程式中非常容易遇到,好的程式並不會把所有內容都寫成public,而是三個都會使用。去面試的時候這也是很常見的考題,因為這個觀念算是最基本的東西,是任何一個寫物件導向程式語言的程式設計師都應該要會的東西。
留言列表