【作者前言】:13年入圈,分享些本人工作中遇到的點點滴滴那些事兒,17年剛開始寫博客,高手勿噴!以分享交流為主,歡迎各路豪杰點評改進!
[1]
??知識點內容
??1. 面向對象設計 [2]
分析項目 --- 先找對象, 再設計類
開發項目 --- 先創建類,根據類new對象
??2. 類訪問控制符 [3]
有了包的概念之后,可以通過某種方式按照權限要求過濾對類的訪問
要控制類的訪問
,需要使用訪問控制符
頂層類的訪問級別:有兩種(后續會內部類充當類成員時,針對該內部類可以使用類成員的訪問控制符):
默認的
(不提供訪問控制符):僅可被同包的其他代碼
訪問
public
: 可以被任何代碼
訪問
??3. 成員的訪問控制 [4]
除了類自身存在訪問控制外,類的成員還存在更為精確的權限控制體系
為了實現封裝特性,可以通過對類成員的權限訪問來隱藏數據而暴露操作接口(簡單來說就是阻止對成員變量的直接操作而由暴露成員方法對數據進行操作)
類成員的訪問級別有四種
:
關鍵字 |
作用 |
---|---|
private |
私有的 |
default |
(不使用default關鍵字,和類的default類似,不提供修飾符即為默認權限) |
protected |
受保護的 |
public |
公開的 |
-
public
任何其它類對象,只要可以看到這個類的話,那么它就可以存取變量的數據,或使用方法
不能單純以成員訪問控制符確定一個成員是否能夠訪問,如果類本身不能被訪問,那么即便成員為public公開權限,也是不能被訪問的
image.png
如果Demo類 去掉public
image.png
-
private
不允許任何其他類存取和調用
image.png
-
protected
如果一個類中變量或方法有修飾字 protected,同一類,同一包中可以使用。不同包的類要使用,必須是該類的子類
需要注意的是,即便在非同包的子類中,也只能通過直接調用繼承下來的成員的方式訪問protected
成員,而不能使用父類的引用進行調用
image.png
[sex]屬性用于演示作用
同包的可以訪問
image.png
不同包的無法進行訪問
image.png
不同包的子類 super 關鍵
image.png
-
default
(不使用default關鍵字,和類的default類似,不提供修飾符即為默認權限)
同一包中出現的類 才可以訪問
image.png
[desc]屬性用于演示作用
同包的可以訪問
image.png
非同包非子類 不能訪問
image.png
非同包 即便是子類, 也不能訪問
image.png
??4. 成員訪問控制符總結 [5]
image.png