一、 靜態(tài)變量
- 大家都知道,我們可以基于一個(gè)類創(chuàng)建多個(gè)該類的對(duì)象,每個(gè)對(duì)象都擁有自己的成員,互相獨(dú)立。然而在某些時(shí)候,我們更希望該類所有的對(duì)象共享同一個(gè)成員。此時(shí)就是 static 大顯身手的時(shí)候了!!
- Java 中被 static 修飾的成員稱為靜態(tài)成員或類成員。它屬于整個(gè)類所有,而不是某個(gè)對(duì)象所有,即被類的所有對(duì)象所共享。
靜態(tài)成員可以使用類名直接訪問,也可以使用對(duì)象名進(jìn)行訪問。當(dāng)然,鑒于他作用的特殊性更推薦用類名訪問~~
- 使用 static 可以修飾變量、方法和代碼塊。
例如,我們?cè)陬愔卸x了一個(gè) 靜態(tài)變量 hobby ,操作代碼如下所示:
Paste_Image.png
運(yùn)行結(jié)果:
Paste_Image.png
- 要注意:靜態(tài)成員屬于整個(gè)類,當(dāng)系統(tǒng)第一次使用該類時(shí),就會(huì)為其分配內(nèi)存空間直到該類被卸載才會(huì)進(jìn)行資源回收!~~
二、靜態(tài)方法
- 與靜態(tài)變量一樣,我們也可以使用 static 修飾方法,稱為靜態(tài)方法或類方法。其實(shí)之前我們一直寫的 main 方法就是靜態(tài)方法。靜態(tài)方法的使用如:
Paste_Image.png
運(yùn)行結(jié)果:
Paste_Image.png
需要注意:
1、 靜態(tài)方法中可以直接調(diào)用同類中的靜態(tài)成員,但不能直接調(diào)用非靜態(tài)成員。如:
Paste_Image.png
如果希望在靜態(tài)方法中調(diào)用非靜態(tài)變量,可以通過創(chuàng)建類的對(duì)象,然后通過對(duì)象來(lái)訪問非靜態(tài)變量。如:
Paste_Image.png
2、 在普通成員方法中,則可以直接訪問同類的非靜態(tài)變量和靜態(tài)變量,如下所示:
Paste_Image.png
3、** 靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過對(duì)象來(lái)訪問非靜態(tài)方法。**如:
Paste_Image.png
這個(gè)靜態(tài)關(guān)鍵字對(duì)于初學(xué)者實(shí)用的時(shí)候很困惑,完全不明白為啥有的地方需要new一個(gè)對(duì)象去調(diào)用,有的地方卻能直接用;看過這個(gè)豁然開朗了;
@晴 --2017年03月01日13:34:38