1、概述
static 關鍵字是聲明靜態變量,靜態方法用的。static的含義是屬于類且不屬于類對象的變量和函數。
2、static的產生。
在創建對象的時候除非用new創建那個類的對象,否則實際上并沒有取得任何對象只有當履行new來創建對象時數據存儲空間才被分配,其方法才供外界調用。但是有兩種情況上述方法時沒法解決的
第1種只想為某特定域分配單1存儲空間而不去斟酌究竟要創建多少對象,乃至不需要創建任何對象。
第2種希望某個方法(變量)不予包括它的類的人很對象關聯在1起。也就是沒有創建對象,也能調用這個方法。
為了解決上面的兩個問題static關鍵字就誕生了。
當1個事物是static的時候就意味著這個域或方法不會與包括它的那個類的任何對象實例關聯在1起。即便從未創建某個類的任何對象,也能夠調用其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、總結。
在例子我們發現第1個打印出來i的值就是實現了希望某個變量不予包括它的類的人很對象關聯在1起。也就是沒有創建對象,也能調用這個方法。下面的則是實現了只想為某特定域分配單1存儲空間而不去斟酌究竟要創建多少對象,乃至不需要創建任何對象。static關鍵字就是為我們解決了這兩個問題。
static關鍵字還是需要慎重使用以避免給程序帶來沒必要要的麻煩。