靜態(tài)類成員可以獨立于該類的任何對象使用。
靜態(tài)成員可以自身使用,而不參考特定實例。
這里展示了如何聲明 static
方法和 static
變量。
static int intValue; static void aStaticMethod(){ }
聲明為靜態(tài)的方法有幾個限制:
類的所有實例共享同一個靜態(tài)變量。您可以聲明一個靜態(tài)塊來初始化靜態(tài)變量。當?shù)谝淮渭虞d類時,靜態(tài)塊只被調用一次。
以下示例顯示了具有靜態(tài)方法的類
public class Main { static int a = 3; static int b; static void meth(int x) { System.out.println("x = " + x); System.out.println("a = " + a); System.out.println("b = " + b); } public static void main(String args[]) { Main.meth(42); } }
輸出:
以下示例顯示了具有靜態(tài)變量的類。
public class Main { static int a = 3; static int b; }
我們可以引用上面定義的靜態(tài)變量如下:
Main.a
以下示例顯示了具有靜態(tài)初始化塊的類。
public class Main { static int a = 3; static int b; static { System.out.println("Static block initialized."); b = a * 4; } }
無法修改最終變量。 必須在聲明時初始化最終變量。最終變量基本上是一個常數(shù)。
public class Main { final int FILE_NEW = 1; final int FILE_OPEN = 2; }
聲明為final的方法不能被覆蓋。
class A{ final void meth() { System.out.println("This is a final method."); } } class B extends A { void meth() { // ERROR! Can"t override. System.out.println("Illegal!"); } }
如果嘗試編譯上面的代碼,編譯器將生成以下錯誤。
更多建議: