這篇文章將為大家詳細講解有關java中的非訪問修飾符,文章內容質量較高,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Java提供了許多非訪問修飾符來實現許多其他功能。
static修飾符用于創建類方法和變量。
final修飾符用于完成類,方法和變量的實現。
abstract修飾符用于創建抽象類和方法。
synchronized和volatile修飾符,用于線程
static修飾符
靜態變量
static關鍵字用于創建獨立于類實例的變量。無論類的實例數有多少個,都只存在一個靜態變量副本。靜態變量也稱為類變量。局部變量不能聲明為static。
靜態方法
static關鍵字用于創建獨立于類實例的方法。靜態方法不能使用作為類的對象的實例變量,靜態方法也叫作類方法。靜態方法從參數中獲取所有數據并從這些參數計算某些內容,而不引用變量??梢允褂妙惷蟾粋€點(.)以及變量或方法的名稱來訪問類變量或方法。
final修飾符
final變量
final變量只能顯式地初始化一次,聲明為final的引用變量永遠不能重新分配以引用不同的對象。但是,可以更改對象內的數據。 因此,可以更改對象的狀態,但不能更改引用。對于變量,final修飾符通常與static一起使用,以使常量成為類變量。
final方法
任何子類都不能覆蓋final方法。 如前所述,final修飾符可防止在子類中修改方法。
聲明final方法的主要目的是不讓其它人改變方法的內容。
final類
使用聲明為final的類的主要目的是防止類被子類化。 如果一個類被標記為final,那么這個類不能被其它類繼承。
abstract飾符
抽象類
抽象(abstract)類不能實例化。如果一個類聲明為抽象(abstract),那么唯一的目的是擴展該類。
一個類不能是同時是abstract和final(因為final類不能被擴展)。 如果一個類包含抽象方法,那么該類應該被聲明為abstract。 否則,將拋出編譯錯誤。
抽象類可以包含抽象方法以及普通方法。
抽象方法
抽象方法是在沒有任何實現的情況下聲明的方法。 方法體(實現)由子類提供。 抽象方法永遠不會是最終的或嚴格的。
擴展抽象類的任何類都必須實現超類的所有抽象方法,除非子類也是抽象類。
如果一個類包含一個或多個抽象方法,那么該類必須聲明為abstract。 抽象類不需要包含抽象方法。
抽象方法以分號結尾。 示例:public abstract sample();
synchronized修飾符
synchronized關鍵字用于指示一次只能訪問一個方法的方法。synchronized修飾符可以應用于四個訪問級別修飾符中的任何一個。
volatile修飾符
volatile修飾符用于讓JVM知道訪問變量的線程必須始終將其自己的變量私有副本與內存中的主副本合并。
訪問volatile變量會同步主內存中變量的所有緩存復制。 volatile只能應用于實例變量,類型為private。 volatile對象引用可以為null。
以上就是java中的非訪問修飾符,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。