類修飾符:
public(訪問控制符),將一個類聲明為公共類,他可以被任何對象訪問,一個程序的主類必須是公共類。
abstract,將一個類聲明為抽象類,沒有實現的方法,需要子類提供方法實現(抽象方法)。
final,將一個類生命為最終(即非繼承類),表示他不能被其他類繼承。
friendly,默認的修飾符,只有在相同包中的對象才能使用這樣的類。
說明:對於頂級類(外部類)來說,只有兩種修飾符:public和默認(default)。因為外部類的上一單元是包,所以外部類只有兩個作用域:同包,任何位置。因此,只需要兩種控制權限:包控制權限和公開訪問權限,也就對應兩種控制修飾符:public和默認(default)。
如果類使用了private修飾符,說明是個內部類。內部類的上一級是外部類,那么對應的有四種訪問控制修飾符:本類(private),同包(default),父子類(protected),任何位置(public)。當一個內部類使用了private修飾后,只能在該類的外部類內部使用。
1 package xiushi; 2 3 class Test1 { 4 5 private class a1{ 6 //這個就是一個內部類 7 } 8 }
成員變量修飾符:
public(公共訪問控制符),指定該變量為公共的,他可以被任何對象的方法訪問。
private(私有訪問控制符)指定該變量只允許自己的類的方法訪問,其他任何類(包括子類)中的方法均不能訪問。
protected(保護訪問控制符)指定該變量可以別被自己的類和子類訪問。在子類中可以覆蓋此變量。
friendly ,在同一個包中的類可以訪問,其他包中的類不能訪問。
final,最終修飾符,指定此變量的值不能變。
static(靜態修飾符)指定變量被所有對象共享,即所有實例都可以使用該變量。變量屬於這個類。
transient(過度修飾符)指定該變量是系統保留,暫無特別作用的臨時性變量。
volatile(易失修飾符)指定該變量可以同時被幾個線程控制和修改。
說明:靜態變量與實例變量的區別
1:在語法定義上的區別:靜態變量前要加static關鍵字,而實例變量前則不加。
2:在程序運行時的區別:實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態變量不屬於某個實例對象,而是屬於類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象后才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。
方法修飾符
public(公共控制符)
private(私有控制符)指定此方法只能有自己類等方法訪問,其他的類不能訪問(包括子類)
protected(保護訪問控制符)指定該方法可以被它的類和子類進行訪問。
final,指定該方法不能被重載。
static,指定不需要實例化就可以激活的一個方法。
synchronize,同步修飾符,在多個線程中,該修飾符用於在運行前,對他所屬的方法加鎖,以防止其他線程的訪問,運行結束后解鎖。
native,本地修飾符。指定此方法的方法體是用其他語言在程序外部編寫的。