天天看點

【Java入門】二十一 封裝

在面向對象程式設計中,封裝(encapsulation)是将對象運作所需的資源封裝在程式對象中——基本上,是方法和資料。對象是“公布其接口”。其他附加到這些接口上的對象不需要關心對象實作的方法即可使用這個對象。這個概念就是“不要告訴我你是怎麼做的,隻要做就可以了。”對象可以看作是一個自我包含的原子。對象接口包括了公共的方法和初始化資料。在這次分享中有什麼不懂的問題,或在Java中遇到的問題都可以問小編,也可以點選​​連結觀看詳細視訊講解。​​

封裝(encapsulation)

封裝是面向對象的三大特征之一

封裝的理念:高内聚、低耦合

封裝的作用和含義

        我要看電視,隻需要按一下開關和換台就可以了。有必要了解電視的内部的結構嗎?有必要碰碰顯像管嗎?制造廠家為了我們友善使用電視,把複雜的内部細節全部封裝起來,隻給我們暴露簡單的接口。

        我們的程式設計要求“高内聚,低耦合”。高内聚就是類的内部資料操作細節自己完成,不允許外部幹涉;低耦合是僅暴露少量的方法給外部使用,盡量友善外部使用。

程式設計中封裝的具體優點:

        1、提高代碼的安全性。

·       2、提高代碼的複用性。

        3、“高内聚”:封裝細節,便于修改内部代碼,提高可維護性。

        4、“低耦合”:簡化外部調用,便于調用者使用,便于擴充和協作。

封裝的實作——使用通路控制符

        Java是使用“通路控制符”來控制哪些細節需要封裝,哪些細節需要暴露的。Java中4種“通路控制符”分别是private、default、protected、public,他們說明了面向對象的封裝性,是以我們要利用它們盡可能的讓通路權限降到最低,進而提高安全性。

【Java入門】二十一 封裝

​                                     

 【注意】關于protected的兩個細節:

1、若父類和子類在同一包中,子類可通路父類的protected成員,也可以通路父類對象的protected成員。

2、若子類和父類不在同一個包中,子類可通路父類的protected成員,不能通路父類對象的protected成員。

封裝的使用細節

【Java入門】二十一 封裝
【Java入門】二十一 封裝

開發中封裝的簡單規則: