JAVA-訪問權限控制


以前對於public、private、protect、default,都只是簡單的知道其對應的訪問權限范圍,現在看了think in java中的描述,講了這幾種訪問權限在什么場景下使用,覺得進一步的了解的它存在的意義和合理性。

因為在我們的日常開發中,常常會創建一些自己常用的工具類或者相應的類庫,這個時候,權限控制標識符可以使我們更好的組織和維護工具類庫,以及給客戶端(在這里指工具類庫的調用方)對工具類庫的調用更加的友好,透明。

default(friendly):即默認的包訪問權限

  在 java 中,如果沒有設定方法或者域的訪問權限,那么他默認的訪問范圍,就是當前包,即當前包下的其他的類,都可以訪問。

  調用方式:通過類實例(靜態方法通過類調用)調用。

public:公開的訪問權限,也稱接口訪問權限。

  對於所有的對象都可以訪問,通常修復需要被外部調用的方法,即我們需要向外部暴露的接口。

  調用方式:通過類實例(靜態方法通過類調用)調用。

private:私有的訪問權限;只有包含該對象的類,才有訪問權限。

  對於不想暴露給外部的的方法,那么,我們就可以使用 private,常常修飾 那些 服務於 暴露的外部接口的 方法,及被那些接口調用,這樣,我們就可以隨意的修改這個方法中的實現,而不用擔心會影響到 調用方。

  調用方式:在包含類中直接調用

protect:受保護的訪問權限,又稱繼承訪問權限

  通常是父類授權給子類訪問,即只有派生了父類的子類才可以訪問,所以它叫繼承訪問權限,即必須繼承,才可以訪問。

  調用方式:在派生類中直接調用。

java編程思想中,建議我們在類的權限控制編寫順序如下:

  1.public、2、protect、3、default、4、private

在閱讀的時候,這種方式顯得更合理、更容易。

注意:這個方式不是強制性的,是建議性的!!!^_^

-------------------------------------------------------------------------------------------------------------------------------

以上講的都是類內部的權限控制,那么對於類的本身的權限控制又是怎樣的呢?繼續往下看。

在 Java 中,訪問權限修飾詞也可以修飾類。使用方法:將修飾詞 置於 class 前邊即可。

類的修飾符只有 public包訪問權限,它不可以是 private 和 protect (內部類除外)。

類的定義的限定:

  1)每個 java  文件只能有一個 public class

  2)public class 的名稱和 java 文件的名稱必須保持一致。

  3)java 文件中 可以沒有 public 修飾的 class,這個時候會有一個默認的權限,即包訪問權限,此時文件的名稱就沒有限定。(這種方式降低代碼的可讀性可維護性

------------------------------------------------------------------------------------------------------------------------------

到此,權限控制的東東就講得差不多了,那么為什么會產生這個東西呢?相信你看了上邊得介紹,就會得出如下兩個原因:

  1)為了使 類調用方 不要訪問到他們不該訪問得內容,對於 類調用方 而言,他們就是一種服務。

  2)為了讓 類庫設計者 可以更改 類的內部實現,而不必去擔心會 影響類的調用方


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM