一、 靜態(tài)變量
- 大家都知道,我們可以基于一個類創(chuàng)建多個該類的對象,每個對象都擁有自己的成員,互相獨立。然而在某些時候,我們更希望該類所有的對象共享同一個成員。此時就是 static 大顯身手的時候了??!
- Java 中被 static 修飾的成員稱為靜態(tài)成員或類成員。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。
靜態(tài)成員可以使用類名直接訪問,也可以使用對象名進行訪問。當然,鑒于他作用的特殊性更推薦用類名訪問~~- 使用 static 可以修飾變量、方法和代碼塊。
例如,我們在類中定義了一個 靜態(tài)變量 hobby ,操作代碼如下所示:

Paste_Image.png
運行結(jié)果:

Paste_Image.png
- 要注意:靜態(tài)成員屬于整個類,當系統(tǒng)第一次使用該類時,就會為其分配內(nèi)存空間直到該類被卸載才會進行資源回收!~~
二、靜態(tài)方法
- 與靜態(tài)變量一樣,我們也可以使用 static 修飾方法,稱為靜態(tài)方法或類方法。其實之前我們一直寫的 main 方法就是靜態(tài)方法。靜態(tài)方法的使用如:

Paste_Image.png
運行結(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)建類的對象,然后通過對象來訪問非靜態(tài)變量。如:

Paste_Image.png
2、 在普通成員方法中,則可以直接訪問同類的非靜態(tài)變量和靜態(tài)變量,如下所示:

Paste_Image.png
3、** 靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過對象來訪問非靜態(tài)方法。**如:

Paste_Image.png
這個靜態(tài)關(guān)鍵字對于初學者實用的時候很困惑,完全不明白為啥有的地方需要new一個對象去調(diào)用,有的地方卻能直接用;看過這個豁然開朗了;
@晴 --2017年03月01日13:34:38