1、概述
static 關(guān)鍵字是聲明靜態(tài)變量,靜態(tài)方法用的。static的含義是屬于類且不屬于類對象的變量和函數(shù)。
2、static的產(chǎn)生。
在創(chuàng)建對象的時候除非用new創(chuàng)建那個類的對象,否則實際上并沒有取得任何對象只有當履行new來創(chuàng)建對象時數(shù)據(jù)存儲空間才被分配,其方法才供外界調(diào)用。但是有兩種情況上述方法時沒法解決的
第1種只想為某特定域分配單1存儲空間而不去斟酌究竟要創(chuàng)建多少對象,乃至不需要創(chuàng)建任何對象。
第2種希望某個方法(變量)不予包括它的類的人很對象關(guān)聯(lián)在1起。也就是沒有創(chuàng)建對象,也能調(diào)用這個方法。
為了解決上面的兩個問題static關(guān)鍵字就誕生了。
當1個事物是static的時候就意味著這個域或方法不會與包括它的那個類的任何對象實例關(guān)聯(lián)在1起。即便從未創(chuàng)建某個類的任何對象,也能夠調(diào)用其Static方法或其static域。3、例子。
TestStatic.java
public class TestStatic { public static int i=33; }
StaticMain.java
public class StaticMain { /** * @param args */ public static void main(String[] args) { System.out.println("TestStatic.i="+TestStatic.i); TestStatic s1=new TestStatic(); TestStatic s2=new TestStatic(); System.out.println("s1.i="+s1.i); System.out.println("s2.i="+s2.i); s2.i=133; System.out.println("s1.i="+s1.i); System.out.println("s2.i="+s2.i); } }
效果圖:
4、總結(jié)。
在例子我們發(fā)現(xiàn)第1個打印出來i的值就是實現(xiàn)了希望某個變量不予包括它的類的人很對象關(guān)聯(lián)在1起。也就是沒有創(chuàng)建對象,也能調(diào)用這個方法。下面的則是實現(xiàn)了只想為某特定域分配單1存儲空間而不去斟酌究竟要創(chuàng)建多少對象,乃至不需要創(chuàng)建任何對象。static關(guān)鍵字就是為我們解決了這兩個問題。
static關(guān)鍵字還是需要慎重使用以避免給程序帶來沒必要要的麻煩。