Static 靜態的;可以用來修飾類別 屬性 方法 程式碼區塊
我們在建立類別時,就是在描述那個類別的物件的外形和行為。除非是new一個創建那個類別的對象,否則,實際上是不能取得任何對象的。只有在執行new來建立物件的時候,資料儲存空間才會被分配,它的方法才能被呼叫。
有兩種狀況是new一個物件的方法無法解決的。
1.只想在某一個特定的域分配一個單獨的儲存空間,不用去考慮究竟要創建多少對象,甚至於不用創建對象。
2.希望某一個方法不與存在有這個方法的類別的任何一個物件有關聯。
也就是說,不用建立物件來呼叫這個方法。這時候,我們可以用static關鍵字來解決。
當聲明一個實物是static時,就說明了這個域或是這個方法不會與存在有它的類別的任何的物件關聯在一起。所以,我們就可以在沒創建這個類別的任何一個對象,就可以來呼叫static的方法或是訪問static域。
static屬性[類別屬性]:該類別的所有的物件共享的一個屬性,只會佔用一塊記憶體空間
例如:
Java程式碼
public class one{ static i=10; }
.i也只有一個儲存空間,這兩個物件會同時享用這個i
Java程式碼
one a1=new one(); one a2=new one();
在這裡,a1和a2都是指向同一個儲存空間,所以它們的數值都是10.
方法[類別方法]:類別方法不能再用this和super表示物件
public class two{ static void jia(){ one.i++; }
two t=new two(); t.jia();
rr 創造任何物件的前提下,就可以呼叫它。
static程式碼區塊:也叫靜態程式碼區塊,是在類別中獨立於類別成員的static語句區塊,可以有多個,位置可以隨便放,它不在任何的方法體內,JVM載入類別時會執行這些靜態的程式碼區塊,如果static程式碼區塊有多個,JVM將按照它們寫在類別中的先後順序依次執行它們,每個程式碼區塊只會執行一次。
例如:
two.one();