參考:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html
靜態(tài)方法
- 1 在Java里枣氧,可以定義一個(gè)不需要?jiǎng)?chuàng)建對(duì)象的方法,這種方法就是靜態(tài)方法伊磺。這種方法是被動(dòng)執(zhí)行的涮坐。靜態(tài)方法在類加載的時(shí)候就已經(jīng)加載,可以用類名直接調(diào)用。也就是說我們可以定義一個(gè)不需要?jiǎng)?chuàng)建對(duì)象的方法记焊,這就是靜態(tài)方法。
- 2 要實(shí)現(xiàn)靜態(tài)方法栓撞,只需要在類中定義的方法前面加上static關(guān)鍵字遍膜。
例如
public static int Total(int n1,int n2) { ... }
- 3 使用靜態(tài)方法事需要注意:
在靜態(tài)方法里只能直接調(diào)用同類中其他的靜態(tài)成員(包括變量和方法),而不能直接訪問類中的非靜態(tài)成員瓤湘。這是因?yàn)閷?duì)于非靜態(tài)的方法和變量瓢颅,需要先創(chuàng)建類的實(shí)例對(duì)象后才可使用,而靜態(tài)方法在使用前不用創(chuàng)建任何對(duì)象弛说。
靜態(tài)方法不能以任何方式引用this和super關(guān)鍵字挽懦,因?yàn)殪o態(tài)方法在使用前不用創(chuàng)建任何實(shí)例對(duì)象,當(dāng)靜態(tài)方法調(diào)用時(shí)木人,this所引用的對(duì)象根本沒有產(chǎn)生信柿。
靜態(tài)代碼塊
- 1一般情況下,如果有些代碼必須在項(xiàng)目啟動(dòng)的時(shí)候就執(zhí)行的時(shí)候,這時(shí)就需要使用靜態(tài)代碼塊,這種代碼是主動(dòng)執(zhí)行的。一個(gè)類可以使用不包含在任何方法體中的靜態(tài)代碼塊醒第,當(dāng)類被載入時(shí)渔嚷,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次稠曼,靜態(tài)塊常用來執(zhí)行類屬性的初始化形病。例如:
static {
}
區(qū)別
兩者的區(qū)別就是:靜態(tài)方法是被調(diào)用的時(shí)候才執(zhí)行的;靜態(tài)代碼塊是自動(dòng)執(zhí)行的。