更新時間:2020-10-12 17:38:00 來源:動力節點 瀏覽2984次
欲先善其事,必先利其器。想要用好Java修飾符,必須要掌握好所有的Java修飾符,知道它們的定義和用法。
首先,我們需要了解什么是修飾符,修飾符實際上是一個廣義的概念,修飾符是用于限定類型以及類型成員的聲明的一種符號,在各種編程語言中都有所體現。下面為大家介紹Java中的修飾符:
下面是類、方法、成員變量和局部變量的可用修飾符的表格,我們可以針對性的對幾個重要的Java修飾符進行講解。
1、訪問控制修飾符:
Java語言采用訪問控制修飾符來控制類及類的方法和變量的訪問權限,從而只向使用者暴露接口,但隱藏實現細節。
公開級別:用public修飾,對外公開
受保護級別:用protected修飾,向子類及同一個包中的類公開
默認級別:沒有訪問控制修飾符,向同一個包中的類公開
私有級別:用private修飾,只有 類本身可以訪問,不對外公開
頂層類只有默認或公開級別,因此不能用private和protected來修飾。
2、abstract修飾符:
用來修飾類和成員方法,抽象類不能被實例化,抽象方法不提供具體的實現。
抽象類中可以沒有抽象方法,但包含了抽象方法的類必須被定義為抽象類
如果子類沒有實現父類中所有的抽象方法,那么子類也必須被定義為抽象類
沒有抽象構造方法,也沒有抽象靜態方法
抽象類中可以有非抽象的構造方法,創建子類的實例時可能會調用這些構造方法
抽象類及抽象方法不能被final修飾符修飾(原因?)
3、final修飾符:
具有“不可更改的”意義,它可以修飾非抽象類飛、非抽象成員方法和變量。
用final修飾的類不能被繼承,沒有子類
用final修飾的方法不能被子類的方法覆蓋
用final修飾的變量表示常量,只能被賦一次值
final不能用來修飾構造方法,無意義(為什么?)
final類:
不是專門繼承而設計的類
出于安全的原因,類的實現細節不允許有任何改動
在創建對象模型時,確信這個類不會再被擴展
final方法:
出于安全的原因,父類不允許子類覆蓋某個方法,此時可以把這個方法聲明為final
final變量特征:
可以修飾靜態變量,實例變量和局部變量,分別表示靜態常量,實例常量和局部常量
final變量都必須顯示初始化
final變量只能賦一次值
如果將引用類型的變量用final修飾,那么該變量只能始終只能引用一個對象,但可以改變內容
final定義常量,有如下作用:
提高程序的安全性,禁止非法修改取值固定且不允許改變的數據
提高程序代碼的可維護性
提高程序代碼的可讀性
4、static修飾符:
用static修飾的變量表示靜態變量,可以直接通過類名來訪問。
用static修飾的成員方法表示靜態方法,可以直接通過類名來訪問。
用static修飾的程序代碼塊表示靜態代碼塊,當Java虛擬機加載類時,就會執行該快代碼
static變量:
靜態變量在內存中只有一個拷貝
對于實例變量每創建一個實例,就分配一次內存;而且互不影響
靜態變量能被類的所有實例共享,可作為實例之間進行交流的共享數據
static方法(why)
靜態方法中不能用this關鍵字,也不能直接訪問所屬類的實例變量和實例方法
可以直接訪問所屬類的靜態變量和靜態方法
靜態方法中也不能用super關鍵字
一個靜態的方法不能被定義為抽象方法,必須實現
static代碼塊
類中也可以包含靜態代碼塊,它不存在于任何方法體中。
Java虛擬機加載類時會執行這些靜態代碼塊。類的構造方法用于初始化類的實例,而類的靜態代碼塊則可用于初始化類。
靜態代碼塊與靜態方法一樣,也不能直接訪問類的實例變量和實例方法,而必須通過實例的引用來訪問
以上就是對常用的Java修飾符的介紹,Java修飾符存在的意義正如它的名字一樣,是用于限定和修飾類型以及類型成員的??赐炅吮疚模覀儜撘舱莆樟藥追N常用的Java修飾符的用法,想要學習更多的Java基礎知識,觀看本站的Java零基礎教程,動力節點是你的不二選擇!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習