Java權限修飾符

  開發這麼久,以前都是看別人的博客,總能學到許多知識,現在決定自己也要寫一寫,一來可以鞏固自己所學的知識點,畢竟自己寫的印象會深刻好多,二來也可以把所學知識分享出來,大家一起進步,以後可能工作會比較忙,不過會盡量抽時間寫,今天就先從簡單的 JAVA 基礎寫起吧!

Java中修飾符總結:

  1. 訪問控制修飾符 

    作用: 用於控制被修飾變量、方法、類的可見範圍. 
    public 的訪問級別是最高的,其次是 protected、默認和 private. 
    成員變量和成員方法可以處於4個訪問級別中的一個:公開、受保護、默認或私有. 
    存在繼承關係時,父類不可以是 private,因爲子類無法繼承 
    頂層類可以處於公開或默認級別,頂層類不能被 protected 和 private 修飾. 
    局部變量不能被訪問控制修飾符修飾 . 
    下圖是在不同情況下各種權限修飾符的作用範圍: 
    在不同情況下各種權限修飾符的作用範圍 

    總結: 在不同包下面能夠訪問的權限修飾符只有: pulbic 與protected,但是 protected 必須要有繼承的關係才能夠訪問。

  2. abstract 修飾符

    抽象類不能被實例化. 
    抽象類中可以沒有抽象方法,但包含了抽象方法的類必須被定義爲抽象方法. 
    如果子類沒有實現父類中所有的抽象方法,子類也必須定義爲抽象類. 
    抽象類不能被定義爲 private、final、和 static 類型. 
    沒有抽象的構造方法. 
    抽象方法沒有方法體,如果一個方法沒有方法體,那麼該方法必須聲明爲抽象的方法. 
    非抽象類繼承抽象類的時候,必須要把抽象類中的所有抽象方法實現.

  3. final 修飾符

    final 變量必須被顯式初始化,並且只能被賦值一次值 
    final 修飾基本類型變量的時候, 該變量不能重新賦值 
    final 修飾引用類型變量的時候, 該變量不能重新指向其他對象 
    final 修飾的方法爲最終的方法, 該方法不能被重寫 
    private 類型的方法都默認爲是final方法,因而也不能被子類重寫 
    final 修飾的類爲最終的類, 不能被繼承

  4. static 修飾符

    如果聲明瞭靜態方法或變量,值是放在方法區,因爲方法區是一個數據共享區;所以不管什麼變量訪問它,都是同一份. 
    在靜態方法中不能直接訪問實例方法和實例變量. 
    在靜態方法中不能使用 this 和 super 關鍵字. 
    靜態方法不能被 abstract 修飾. 
    靜態的成員變量可以使用類名或者是對象進行訪問,非靜態成員變量只能使用對象進行訪問. 
    靜態函數可以直接訪問靜態的成員,但是不能夠直接訪問非靜態成員.,非靜態函數可以訪問靜態和非靜態成員. 
    當類被加載時,靜態代碼塊只能被執行一次。類中不同的靜態方法代碼塊按他們在類中出現的順序被依次執行. 
    當多個修飾符連用時,修飾符的順序可以顛倒,不過作爲普遍遵守的編碼規範,通常把訪問控制修飾符放在首位,其次是 static 或 abstact 修飾符,接着就是其他的修飾符

    注意:以下修飾符一起用是無意義的,會導致編譯錯誤: 
    abstract 與 private 
    abstract 與 final 
    abstract 與 static

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章