封裝(Encapsulation)

 

介紹完物件導向的基本概念以後,首先要來跟大家介紹甚麼是封裝。

封裝(Encapsulation) 指的是把有必要的內容對外來公開,沒有必要讓別人看到的內容則隱藏起來。

舉例來說,就好像一家大公司,他的大廳是所有人都可以去的地方,所以說大廳會客這是公開的,而公司有很多機密資料,這些存放機密資料的電腦不能隨便讓人使用,都是只有特定的員工或是主管可以使用,所以使用機密資料電腦就是不公開的,另外還有一種情況,公司裡面每個部門的某些電腦可能是可以同一部門的人使用,提供同一個部門的人來查詢資料,或是開會時做簡報,但是別的部門的人就不能使用,所以使用XX部門公用電腦這件事情他的權限是同一部門內都可以用。

上面這個例子就說明了封裝這件事情,封裝分成三種情況publicprotectedprivate.

 

public:公開讓任何人都可以使用。

protected:同一個群組的人可以使用。

private:只有特定的人可以使用,外界不能用。

 

甚麼是public?就像我上面所舉的例子,在公司中大廳是公開所有人都可以去的地方,大廳會客是所有人都可以做的,這就叫做public。使用公司裡面機密資料電腦僅僅只有特定的人可以做,其他人都不能做,這就是private。公司裡面的部門電腦只有該部門的人可以用,其他人都不能使用,因為只有同一個群組的人可以做,不是這個群組的人就不能做,這種情況就是protected

在物件導向程式設計中,封裝的目的是只提供使用者必要的介面,把實作內容隱藏,就好像我今天使用電視遙控器,我只會看到按鈕,電視遙控器的電路板則是隱藏起來了,因為電視遙控器的運作原理不必給使用者知道,這就是封裝在日常生活中的例子。

封裝的三種情況publicprotectedprivate在物件導向程式中非常容易遇到,好的程式並不會把所有內容都寫成public,而是三個都會使用。去面試的時候這也是很常見的考題,因為這個觀念算是最基本的東西,是任何一個寫物件導向程式語言的程式設計師都應該要會的東西。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 波羅、希夏普2020 的頭像
    波羅、希夏普2020

    希夏普2020的程式天地

    波羅、希夏普2020 發表在 痞客邦 留言(0) 人氣()