成员的访问控制java_java类成员的访问控制(翻译自Java Tutorials)
原文出自?http://www.cnblogs.com/ggjucheng/archive/2012/11/28/2793339.html
訪問級別修飾符決定了其他類是否可以使用它的特定字段或調用特定方法,有兩種級別的訪問控制:
頂層級別—public,或者包內私有(沒有顯式的修飾符)
成員級別—public,private,protected,或者包內私有(沒有顯式的修飾符)
一個類可以使用public修飾,這個情況,類可以在任何地方被其他類訪問。如果類沒有修飾符(默認,就是包私有),它只能在自己的包內是可見的(包是相關類的一個組,后面會學習的)
在成員級別,你可以使用public修飾符或者是沒有修飾符(包內私有),這個和頂層類級別一樣,表示一樣的含義。對于成員來說,有兩個附加的訪問修飾符:private和protected.private修飾符表示這個成員只能被自己的類訪問,protected修飾符表示,這個成員只能在自己的包內訪問(如包內私有),但是,附加的是,在其它包里,可以被它的子類訪問。
下面的表格顯示每個修飾符的成員訪問許可
Access Levels
ModifierClassPackageSubclassWorld
public
Y
Y
Y
Y
protected
Y
Y
Y
N
no modifier
Y
Y
N
N
private
Y
N
N
N
第一列指示,在該訪問級別,類本身是否有權限訪問成員。正如你看到的,一個類總是可以訪問它的成員。第二列只是在同個包的類(不管是否繼承的關系)是否有權限訪問成員,第三列指示包外的類是否有權限訪問該成員。第四列指示全部的類是否有權限訪問該成員。
訪問級別影響你兩個方面。第一,當你使用來自其他來源的類,如Java平臺的類,訪問級別確定你自己的類可以使用這些類的哪些成員。第二,當你寫一個類,你需要決定每一個成員變量和每個方法應該有什么樣的訪問級別。
讓我們來看看類的集合和訪問級別如何影響可見性。下圖在這個例子中顯示四大類,還有它們之間的關系。
說明類和包的訪問級別的例子
下面的表顯示了Alpha類的成員在每個訪問修飾符,它們對于其它類是否可見。
Visibility
ModifierAlphaBetaAlphasubGamma
public
Y
Y
Y
Y
protected
Y
Y
Y
N
no modifier
Y
Y
N
N
private
Y
N
N
N
如何選擇訪問級別:
如果其他程序員使用你的類,你要確保濫用不會導致發生錯誤,訪問級別可以幫助你做到這一點。
使用最嚴格的訪問級別,對于特定成員來說是合理的。盡可能使用private,除非你有一個很好的理由不用。
除了常量,其他字段避免public(在本教程中的許多例子中使用public字段。這可能有助于簡潔的說明,但不建議用于生產代碼。)public字段往往導致你一個特定的實現,限制你改變你的代碼的靈活性。
總結
以上是生活随笔為你收集整理的成员的访问控制java_java类成员的访问控制(翻译自Java Tutorials)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串相加 java_字符串相加-Lee
- 下一篇: cascader 动态加载 回显_Ele