1.類別的修飾符分為:可存取控制符和非存取控制符兩種。
可存取控制符是:公共類別修飾符public
非存取控制符有:抽象類別修飾符abstract ;最終類別修飾符final
1 )公共類別修飾符public : Java 語言中類別的可存取控制符只有一個: public 即公共的。每個Java 程式的主類別都必須是public 類別作為公共工具供其它類別和程式使用的應定義為public 類別。
2 )抽象類別修飾符abstract :凡是用abstract 修飾符修飾的類,稱為抽象類別。所謂抽象類別是指這種類別沒有具體物件的一種概念類別。這樣的類別就是Java 語言的abstract 類別。
3 ) 最終類別修飾符final :當一個類別不可能有子類別時可用修飾符final 把它說明為最終類別。被定義為final 的類別通常是一些有固定作用、用來完成某種標準功能的類別。
4 )類缺省存取控制符:如果一個類別沒有存取控制符,表示它具有預設的存取控制符特性。此時,這個類別只能被同一個套件中的類別存取或引用。這項存取特性又稱為包存取性。
2 .域的控制修飾符也分為:可存取控制符和非存取控制符兩類。
可存取控制符有4 種:公共存取控制符: public ;私有存取控制符: private ;保護存取控制符: protected ;私有保護存取控制符: private protected
非存取控制符有4 種:靜態域修飾符: static ;最終域修飾符: final ;易失( 共享) 域修飾符: volatile ;暫時性域修飾符: transient
1 )公共存取控制符public :以public 修飾的域稱為公共域。如果公共域屬於一個公共類,則可以被所有其它類所引用。由於public 修飾符會降低運作的安全性和資料的封裝性,所以一般應減少public 域的使用。
2 )私有存取控制符private :用private 修飾的成員變數( 域) 只能被該類別本身所訪問,而不能被任何其它類別( 包括子類別) 所引用。
3 )保護存取控制符protected :用protected 修飾的成員變數可以被三種類所引用:①該類別本身;②與它在同一個套件中的其它類別;③在其它包中的該類別的子類別。使用修飾符protected 的主要作用是允許其它包中它的子類別來存取父類別的特定屬性。
4 )私有保護存取控制符private protected :以修飾符private protected 修飾的成員變數可以被該類別本身或該類別的子類別兩種類別存取和引用。
5 )靜態域修飾符static :用static 修飾的成員變數只屬於類別的變量,而不屬於任何一個特定的對象,靜態成員變數的值是保存在類別的記憶體區域的公共儲存單元,而不是保存在某一個物件的記憶體區間。任何一個類別的物件存取它時取到的都是相同的資料;任何一個類別的物件修改它時, 也都是對同一個記憶體單元進行操作。
6 )最終域修飾符final :最終域修飾符final 是用來定義符號常數的。一個類別的域( 成員變數) 如果被修飾子final 說明,則它的取值在程式的整個執行過程中都是不變的。
7 )易失( 共享) 域修飾符volatile :易失( 共享) 域修飾符volatile 是用來說明這個成員變數可能被幾個執行緒所控制和修改。也就是說在程式運行過程中,這個成員變數有可能被其它的程式影響或改變它的取值。因此,在使用中要注意這種成員變數取值的變化。通常volatile 用來修飾接受外部輸入的域。
8 )暫時性域修飾子transient :暫時性域修飾子transient 用來定義一個暫時性變數。其特點是:以修飾符transient 限定的暫時性變量,將指定Java 虛擬機器認定該暫時性變數不屬於永久狀態,以實現不同物件的存檔功能。否則,類別中所有變數都是物件的永久狀態的一部分,在儲存物件時必須同時保存這些變數。
3 .方法的控制修飾符也分為:可存取控制符和非存取控制符兩類。
可存取控制符有4 種:公共存取控制符: public ;私有存取控制符: private ;保護存取控制符: protected ;私有保護存取控制符: private protected
非存取控制符有5 種:抽象方法控制符: abstract ;靜態方法控制符: static ;最終方法控制符: final ;本地方法控制符: native ;同步方法控制符: synchronized
1 )抽象方法控制子abstract :用修飾字abstract 修飾的方法稱為抽象方法。抽象方法是一種僅有方法頭,沒有方法體和操作實現的一種方法。
2 )靜態方法控制符static :以修飾符static 修飾的方法稱為靜態方法。靜態方法是屬於整個類別的類別方法;而不使用static 修飾、限定的方法是屬於某個特定類別物件的方法。 由於static 方法是屬於整個類別的,所以它不能操縱和處理屬於某個物件的成員變量,而只能處理屬於整個類別的成員變量,即static 方法只能處理static 的域。
3 )最終方法控制子final :用修飾子final 修飾的方法稱為最終方法。最終方法是功能和內部語句不能更改的方法,即最終方法不能重載。這樣,就固定了這個方法所具有的功能和操作,防止目前類別的子類別對父類別關鍵方法的錯誤定義,並保證了程式的安全性和正確性。所有被private 修飾符限定為私有的方法,以及所有包含在final 類別( 最終類別) 中的方法,都被認為是最終方法。
4 )本地方法控制符native :用修飾符native 修飾的方法稱為本地方法。為了提高程式的運作速度,需要用其它的高階語言書寫程式的方法體,那麼該方法可定義為本地方法用修飾符native 來修飾;
5 )同步方法控制符synchronized :此修飾符主要用於多執行緒共存的程式中的協調和同步。