static是java語(yǔ)言中的關(guān)鍵字,表示“靜態(tài)的”,它可以用來(lái)修飾變量、方法、代碼塊等,修飾的變量叫做靜態(tài)變量,修飾的方法叫做靜態(tài)方法,修飾的代碼塊叫做靜態(tài)代碼塊。在java語(yǔ)言中凡是用static修飾的都是類相關(guān)的,不需要?jiǎng)?chuàng)建對(duì)象,直接通過(guò)“類名”即可訪問(wèn),即使使用“引用”去訪問(wèn),在運(yùn)行的時(shí)候也和堆內(nèi)存當(dāng)中的對(duì)象無(wú)關(guān)。
有時(shí)你希望定義一個(gè)類成員,使它的使用完全獨(dú)立于該類的任何對(duì)象。通常情況下,類成員必須通過(guò)它的類的對(duì)象訪問(wèn),但是可以創(chuàng)建這樣一個(gè)成員,它能夠被它自己使用,而不必引用特定的實(shí)例。在成員的聲明前面加上關(guān)鍵字static(靜態(tài)的)就能創(chuàng)建這樣的成員。如果一個(gè)成員被聲明為static,它就能夠在它的類的任何對(duì)象創(chuàng)建之前被訪問(wèn),而不必引用任何對(duì)象。你可以將方法和變量都聲明為static。static 成員的最常見(jiàn)的例子是main()。因?yàn)樵诔绦蜷_(kāi)始執(zhí)行時(shí)必須調(diào)用main() ,所以它被聲明為static。
聲明為static的變量稱為靜態(tài)變量或類變量。可以直接通過(guò)類名引用靜態(tài)變量,也可以通過(guò)實(shí)例名來(lái)引用靜態(tài)變量,但最好采用前者,因?yàn)楹笳呷菀谆煜o態(tài)變量和一般變量。靜態(tài)變量是跟類相關(guān)聯(lián)的,類的所有實(shí)例共同擁有一個(gè)靜態(tài)變量。
聲明為static的方法稱為靜態(tài)方法或類方法。靜態(tài)方法可以直接調(diào)用靜態(tài)方法,訪問(wèn)靜態(tài)變量,但是不能直接訪問(wèn)實(shí)例變量和實(shí)例方法。靜態(tài)方法中不能使用this關(guān)鍵字,因?yàn)殪o態(tài)方法不屬于任何一個(gè)實(shí)例。