1. 程式人生 > >關於JAVA的包訪問許可權

關於JAVA的包訪問許可權

眾所周知,JAVA提供了許多級別的訪問許可權,從而可以精確的控制類、超類以及包中變數和成員的可見性。從而更好的實現封裝、繼承,多型。現在我們將對每一種包訪問許可權做一些說明,可能有遺漏或者錯誤,請大家多多指正。這裡我們主要分析類成員的包訪問許可權。

因為類和包的相互影響,對於JAVA中的類成員(變數及方法),主要表現為五種型別的可見性:

1、類本身。

2、相同包中的子類。

3、相同包中的非子類。

4、不同包中的子類。

5、不同包中的非子類。

而對於訪問許可權,JAVA又提供了三個關鍵字以及預設許可權作出對應處理,分別為private,預設訪問許可權,protected,public,具體關係如下表。雖然看起來有些複雜,但是我們可以對其進行如下簡化理解:

  • 所有申明為public的成員可以在任何地方進行訪問。
  • 所有申明為private的成員在當前類外部都為不可見。
  • 如果是預設訪問許可權,只有當前包下的類可見,其他包中子類也無法訪問。
  • 所有申明為protected的成員,在預設許可權的基礎上,其他包中子類也可以訪問。
private 預設訪問許可權 protected public
類本身
相同包中子類
相同包中的非子類
不同包中的子類
不同包中的非子類子類