Java提供了許多非存取修飾符來實作許多其他功能。
static修飾符用於建立類別方法和變數。 (建議學習:java課程)
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的非存取修飾符有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!