靜態屬性可以用類名直接訪問,在類載入時就會被初始化到方法區。(成員變數在建立物件時初始化)
1.靜態方法可以用類名直接呼叫。注意:2.靜態方法中只能訪問類的靜態成員(包括屬性和方法)。
3.靜態方法中不可以出現this(this是指當前物件,而靜態方法裡時沒有當前物件的)。
1.引用調靜態方法,實際是對引用型別調靜態方法。
2.靜態方法只能被子類的靜態方法覆蓋,而且沒有多型。
3.總上所述static修飾的屬性和方法都是和類相關的和物件沒關係。
動態初始**塊
在建立物件初始化屬性的時候執行。
class
myclass
public
myclass()
}
靜態初始**塊
在類載入的時候執行。
類載入
jvm首次使用某個類時,需要通過classpath查詢該類的.class檔案。載入時機:
建立物件
建立子類物件
訪問靜態屬性
呼叫靜態方法
class.forname(「全限定名」);
注意:如果只是宣告乙個類的引用,不需要類載入。
類載入的步驟
1.如果需要,先載入父類
2.按順序初始化靜態屬性,或執行靜態初始**塊。
class
myclass
public
myclass()
}
static靜態修飾符
靜態成員歸整個類所有,不依賴類特定的例項,是被類的所有例項共享。只要這個類被jvm載入,就可以根據類名在全域性資料區域內找到它們。因此,靜態成員可以在任何物件建立之前訪問而無需訪問物件。static關鍵字修飾的成員變數稱為靜態成員變數,簡稱靜態變數。靜態變數是屬於類,但是不依賴類特定的例項。靜態變數...
C 之static靜態修飾符詳解
所以靜態成員資料也稱為類資料,靜態成員函式也稱為類方法。靜態成員資料在類裡只是乙個說明,還需要乙個定義 或叫初始化 靜態成員資料要在類定義之外被初始化 要用類名限定修飾 而且程式裡只能提供一次,所以初始化不能放在標頭檔案裡。例1 class test error int test k is a st...
static修飾符的使用
static修飾符能修飾內部類,方法,變數,塊。靜態 成員意味著該成員屬於類級,而不依賴於類的例項,也不依賴於任何乙個類的成員,可以不通過建立類的例項來使用靜態成員。靜態變數在類被加載入時初始化,乙個類只有乙個靜態變數的記憶體空間,而不會依賴於物件再次分配空間。區域性變數不能被宣告為靜態變數。靜態方...