static學習筆記

2022-01-31 06:34:28 字數 1900 閱讀 4387

驀然發現,腦子裡對關鍵字static是一灘漿糊,只知道是表示靜態,具體該用在什麼場合,用了有什麼好處和壞處等,說不清道不明。作為開發人員真汗顏啊。。。趕緊學習一下

static

修飾符可用於類、字段、方法、屬性、運算子、事件和建構函式,但不能用於索引器、析構函式或類以外的型別。

靜態類:

1.僅包含靜態成員

靜態類中的所有成員必須是靜態的,靜態類不能包含例項成員。

常數或者型別宣告隱式地是靜態成員,除此之外,靜態類成員都應該加static修飾符。

static

class companyemployee

public

static

void dosomethingelse() 

}2.不能被例項化

不能使用new關鍵字建立靜態類的例項。

3.是密封的

不能繼承乙個靜態類。

4.不能包含例項建構函式

可以包含靜態建構函式。靜態建構函式可以用於靜態類,也可以用於非靜態類。靜態建構函式無訪問修飾符無引數,只有乙個static標誌。靜態建構函式不可被直接呼叫,當建立類例項或引用任何靜態成員之前,靜態建構函式被自動執行,並且只執行一次。

static

class cat

public

static

void howmanycats()

cats adopted

", statics);}}

public

class tester

}結果:

1 cats adopted

1 cats adopted

5. 靜態與非靜態的效能比較

靜態的從程式一啟動就會一直占用記憶體,而非靜態的只在例項化後才會占用記憶體,但是每例項化乙個物件時就會占用乙份記憶體。

6. 何時使用靜態類?

當類中沒有依賴物件標識的資料或行為時,就可以使用靜態類。當類中有依賴物件標識的資料或行為時,就不能使用靜態類。

經常呼叫的類,應該設計成靜態的。不經常呼叫的類,應該設計成非靜態的。

靜態成員

靜態成員通常用於表示不會隨物件狀態而變化的資料或計算,無論物件發生什麼更改,靜態成員都不會隨之變化。

不需要建立類的例項就可以呼叫該類中的靜態方法、字段、屬性或事件。

如果建立了類的例項,不能通過使用例項來訪問靜態成員。

靜態方法和屬性只能訪問靜態欄位和靜態事件。靜態方法呼叫非靜態的方法,必須先例項化乙個物件。

靜態類的乙個重要特點就是共享,所以通常使用靜態變數來儲存當前類的例項數目。

class cat

public

static

void howmanycats()

cats adopted

", statics);}}

public

class tester

}結果:

0 cats adopted

1 cats adopted

2 cats adopted

2 cats adopted

不可以使用this來引用靜態方法或屬性訪問器

若要訪問靜態成員,應該使用類名而不是變數名來指定該成員的位置

public

class automobile

}public

static

void drive() 

public

static

event eventtype runoutofgas;

//other non-static fields and properties...

}訪問寫法:

automobile.drive();

int i = automobile.numberofwheels;

學習筆記 static的作用

1.static的作用 1 限制變數的作用域。2 設定變數的儲存域 在函式體,乙個被申明為靜態的變數在這乙個函式被呼叫的過程中維持值不變。void changeage 在模組內 但在函式體外 乙個被申明為靜態變數可以被模組內所有函式訪問,但不能被其他模組內的函式訪問 import person.h ...

Java學習筆記之static與this

package com.classtest import static package battery.直接匯入靜態類 呼叫靜態方法可以可以直接使用 不常用 1 靜態成員變數 屬於類的 屬於所有物件的全域性變數 2 靜態成員方法 屬於類的 屬於所有物件的全域性方法 3 靜態的只能呼叫靜態的 通過物件...

靜態static 筆記

1.類物件共享 2.類載入時產生,銷毀時釋放,生命週期長 靜態成員的訪問 1.物件.成員 2.類名.成員 static放於屬性名前稱作靜態屬性 類屬性 static放於方法名前稱作靜態方法 類方法 推薦呼叫方式 類名.靜態成員 在成員方法中,可以直接訪問類中的靜態成員 靜態方法中不能直接訪問同乙個類...