這意味著:
封裝就是定義壹個類,然後添加訪問控制修飾符(public,private,
Protected,默認的包訪問權限),這樣這個類的屬性和方法在類外是可見的,不想被隱藏。
所以通過封裝的方式,抽象出了事物的本質特征。
為了進壹步解釋上述內容:
什麽是抽象?比如以人類為例,封裝就是壹種手段。封裝定義的這個類和現實中人的實體(對象)之間有壹個抽象。我們的現實中只有壹個人(物)。人類只是壹個概念上的東西,是我們自己總結出來的。我們知道人是什麽樣子的,所以我們知道符合這個要求的人才叫做人。人的大腦總是習慣於對事物進行分類。於是,人類的概念出現了,於是我們發現,所有的人都有眼睛,鼻子,嘴巴(屬性),能吃東西(方法),等等。這是人類的本質特征,然後還要編程。人類的概念不能只出現在我們的腦海中,而必須體現在代碼中。所以如果要在代碼中體現出來,也就是定義壹個類,就必須使用封裝的手段。
為什麽要添加訪問控制?
第壹,有些東西很關鍵,很機密,不希望被隨便使用、更改或接觸。
第二,它可能不是關鍵秘密,被訪問或更改也沒關系。但是因為有些屬性和方法,對外界來說是無關緊要的,沒用的,但是對我自己的類來說是必須的,因為我自己的類可能會用到。這個時候的好處是,如果這些不必要的內容暴露在外面,那麽在使用的時候,用戶就會很困惑,因為這個字符串對他來說是沒有用的,但是可以調用和訪問,他不知道它是沒有用的,但是如果隱藏起來,不被外界查看,就會很清楚,因為這樣壹來,只要暴露在外面,它就有用了。想壹想,JDK的類庫裏暴露出來的屬性和方法,哪個是沒用的?這也是壹個很好的編程習慣和規範。
說了這麽多,我的理解其實是有限的,面向對象的思想並不局限於某壹種語言。請仔細看看它。我說的不壹定全對,只是我個人的理解。
剛才在網上找到壹句話。我沒有說出來,但是我感覺這樣也不錯。我可以仔細欣賞它:
封裝是人們在解決現實世界中的問題時,為了簡化問題而采用的壹種方法和壹種信息屏蔽技術。