Java(static關(guān)鍵字)
static關(guān)鍵字的用途:
① 修飾變量或方法
一句話解釋就是“方便在沒有創(chuàng)建對象的情況下來進(jìn)行調(diào)用(方法/變量)”。
方法或變量一旦使用了關(guān)鍵字static,那么這樣的內(nèi)容不再屬于對象自己,而屬于所在的類;當(dāng)所在類被new出來之后,它不再需要用對象調(diào)用。
如:
static?String?room;調(diào)用方式:
類名.room;② 聲明靜態(tài)代碼塊
static關(guān)鍵字還可以用來聲明靜態(tài)代碼塊,靜態(tài)代碼塊只有在類被初始化時(shí)會被執(zhí)行一次,之后就不會再執(zhí)行。
因此,很多時(shí)候會將一些只需要進(jìn)行一次的初始化操作都放在static代碼塊中進(jìn)行。
執(zhí)行順序:靜態(tài)代碼塊?構(gòu)造代碼塊?構(gòu)造函數(shù)
需要注意的是靜態(tài)不能直接訪問非靜態(tài),因?yàn)樵趦?nèi)存中是“先”有的靜態(tài)內(nèi)容,“后”有的非靜態(tài)內(nèi)容。再者是靜態(tài)方法中不能使用this關(guān)鍵字。
static關(guān)鍵字的誤區(qū)
① Java中的static關(guān)鍵字不會影響到變量或者方法的作用域,在Java中能夠影響到訪問權(quán)限的只有private、public、protected(包括包訪問權(quán)限)這幾個(gè)關(guān)鍵字。
如:

②?靜態(tài)成員變量雖然獨(dú)立于對象,但是不代表不可以通過對象去訪問,所有的靜態(tài)方法和靜態(tài)變量都可以通過對象訪問(只要訪問權(quán)限足夠)。
③ 在Java中static關(guān)鍵字不允許作用于局部變量。
點(diǎn)擊關(guān)注公眾號,查看更多內(nèi)容:
