作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/
1.修飾頂層類(不是指在一個類中定義的類)包括abstract、public、final。局部變數只能用final修飾。
2.一個類中,可以訪問類本身或內部類的執行個體的私人成員。
3.abstract修飾符:
形成抽象類別和抽象方法,前者不能建立對象(但是可以建立一個引用變數,其類型時抽象類別,但是它引用非抽象的子類的一個執行個體),後者不提供具體實現。抽象類別中可以沒有抽象方法,但是包含抽象方法的類必須是抽象類別。若子類沒有實現父類中所有的抽象方法,那麼子類也必須被定義為抽象類別。實現抽象方法直接使用覆蓋。不存在抽象構造方法,更不存在抽象靜態方法。abstact和final不能同時使用。
4.final修飾符:
final修飾的類不能被繼承,沒有子類。
final修飾的方法不能被子類的方法覆蓋。
final修飾的變數是常量,只能賦值一次。
final不能修飾構造方法。
private類型由於其不能被子類方法所覆蓋,其預設的為final類型。
注意:
a.final類型的成員變數必須顯式初始化.其中執行個體變數還可以在構造方法中初始化。
b.若將參考型別的變數用final修飾,那麼該變數只能始終引用一個對象。
5.靜態修飾符:
用static修飾的成員變數和成員方法,可以直接通過類名訪問。
用static修飾的代碼塊,JVM載入類的時候就會執行。
static變數在某種程度上類似於C語言的全域變數相似.
static方法可以直接使用類名進行訪問,只能直接存取所屬類的靜態變數和靜態方法。要訪問非靜態變數和方法則使用一個對象引用來進行。但相對的,執行個體方法卻可以直接存取所屬類的靜態變數和靜態方法和執行個體變數以及執行個體方法。它必須被實現(也就是說不能被abstract,它倆永遠是一對冤家)。但是要注意的是,方法的位元組碼都在方法區,而引用都在堆上。
static塊:類的構造方法用來初始化類的執行個體,而類的靜態代碼塊則可用於初始化類,給類的靜態變數賦初值。它和靜態方法一樣,不能直接存取類的執行個體變數和執行個體方法,而必須通過執行個體的引用來訪問它們。
作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/