作用域 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
沒有時默認爲friendly,如構造函數等~
在Java語言中有4種訪問修飾符:package(默認)、private、public和protected.
1。package是默認的保護模式,又叫做包訪問,沒有任何修飾符時就採用這種保護模式。包訪問允許域和方法被同一個包內任何類的任何方法訪問。(包內訪問)
2。private標識的訪問模式,表示私有的域和方法只能被同一個類中的其他方法訪問,實現了數據隱藏;必要時,可以通過方法訪問私有變量。(類內訪問)
3。public修飾符用於暴露域和方法,以便在類定義的包外部能訪問它們。對包和類中必要的接口元素,也需要使用這個級別;main()方法必須是public的,toString()方法也必須是public的。一般不會用public暴露一個域,除非這個域已經被聲明爲final。(跨包訪問)
4。protected修飾符提供一個從包外部訪問包(有限制)的方法。在域和方法前增加protected修飾符不會影響同一個包內其他類和方法對它們的訪問。要從包外部訪問包(其中含有protected成員的類),必須保證被訪問的類是帶有protected成員類的子類。也就是說,希望包中的一個類被包之外的類繼承重用時,就可以使用這個級別。一般應該慎用。(包中類被包外類繼承重用)
轉載於:點擊打開鏈接