java訪問控制

    java訪問控制的原因:1 防止程序員接觸到他們不該接觸的東西. 2允許庫程序員修改內部結構.java的訪問控制體現了面向接口編程的思想,以及面向對象編程中的實現方案隱藏的思想,本文假設你已經對package概念比較瞭解
    java採用三個顯示關鍵字public,private,protected以及一個暗示性的friendly來修飾類,變量以及方法.
         public:任何後續的定義任何人都可以使用.
         private除了自己,類型的創建者以及類的內部函數,其他無法訪問.
         friendly涉及到包裝概念.
         protected與private相似,只是一個繼承的類可以訪問受保護的成員,但是不能訪問私有成員.
          上面的說明比較抽象籠統,下面按照對象消息交互的兩個步驟來談訪問控制,面向對象是消息驅動機制,交互有兩個步驟: 一 獲得對象     二給對象的接口發送消息.因此java的訪問控制也主要分兩個步驟:第一客戶類是否能夠獲取對象(主要有組合 以及繼承),第二:能否訪問對象中的變量以及方法.
 
      根據上述兩個步驟, 訪問控制主要有兩道關卡:1 類的訪問控制權限 2類中方法的訪問控制權限,具體如下:

類修飾關鍵詞:

修飾類只能:public,abstract,final.不加修飾即爲friendly類.只有修飾爲public的類,別的 包的類纔可以繼承或者引用這個類.定義爲abstract,final以及不加修飾的類,別的包的類無法繼承以及引用這個類.

變量,方法修飾關鍵詞:

public修飾的變量以及方法,任何類都可以訪問,只要別的類有權限訪問本類.
private修飾的方法,只有類內部纔可以訪問,別的類即使new了一個含有private的的class,也不可以訪問private類,這樣的話,A類中的private方法,無論A類是什麼類型,別的類都無法訪問A類的private方法,即使別的類 A a=new A();也不可以採用如下方法訪問Private方法:a.privateMethodName();protected修飾的方法,同樣不可以採用a.proctedMethodName()訪問.private修飾的方法變量,只有B類繼承了A類,才能使用super.proctedMethodName()訪問.friendly修飾的方法,對別的包的類來說都是不可訪問的

        

發佈了34 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章