靜態(tài)成員變量和靜態(tài)方法
靜態(tài)成員變量
在類(lèi)的定義體中使用是他提出進(jìn)行修飾捐名。如果不聲明為private的話(huà),在類(lèi)的外部也是可見(jiàn)的。
靜態(tài)成員變量的特點(diǎn)
- 首先它是成員變量,依然可以被類(lèi)中的成員方法訪問(wèn)拌夏。
- 外部訪問(wèn)的時(shí)候,可以直接通過(guò)類(lèi)名進(jìn)行引用履因,不需要再實(shí)例化對(duì)象障簿。例如:
class Chinese{
static String country = "中國(guó)";
int age;
...
void singOurCountry(){
System.out.println("親愛(ài)的:"+country);
}
}
class TestChinese{
...main(..){
System.out.println("中國(guó)人的祖國(guó)是唯一的:"+Chinese.country);
}
}
注意
方法體內(nèi)的變量是不能聲明為靜態(tài)的,靜態(tài)的只能是類(lèi)的成員變量栅迄。
靜態(tài)方法
同靜態(tài)成員變量類(lèi)似站故,不必創(chuàng)建對(duì)象,就可以直接使用該方法
使用靜態(tài)方法的注意點(diǎn)
- 在靜態(tài)方法中只能調(diào)用同類(lèi)中的其他靜態(tài)成員(靜態(tài)成員變量和靜態(tài)方法)毅舆,不能訪問(wèn)其他的非靜態(tài)的成員西篓。
- 靜態(tài)方法使用時(shí)不能其內(nèi)部使用this和super愈腾。
上面兩個(gè)注意點(diǎn)的原理:使用靜態(tài)方法之前不會(huì)創(chuàng)建對(duì)象和實(shí)例,因此岂津,依賴(lài)于對(duì)象存在的東西(非靜態(tài)成員和this顶滩,super)都不能在靜態(tài)方法中使用。
靜態(tài)代碼塊
一個(gè)類(lèi)中可以使用不包含在任何方法體中的靜態(tài)代碼塊寸爆,每當(dāng)類(lèi)被載入的時(shí)候礁鲁,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次赁豆。因此:
靜態(tài)代碼塊常被進(jìn)行類(lèi)屬性的初始化仅醇。
靜態(tài)代碼塊的特點(diǎn)和注意點(diǎn)
- 無(wú)論實(shí)例化多少次這個(gè)類(lèi),類(lèi)里面的靜態(tài)代碼塊只執(zhí)行一次魔种。