Java 程式設計/關鍵字/static
外觀
static 是一個 Java 關鍵字。它可以應用於欄位、方法或 內部類。靜態欄位、方法或類對於定義它的整個類只有一個例項,即使程式中沒有該類的例項也是如此。例如,Java 入口點 (main()) 必須是靜態的。靜態方法不能是 抽象 的。它必須放在變數型別或方法返回值型別之前。建議將其放在訪問修飾符之後,final 關鍵字之前
程式碼部分 1:靜態欄位和方法。
public static final double PI = 3.1415926535;
public static void main(final String[] arguments) {
//…
}
|
靜態項可以在例項化的物件上呼叫,也可以直接在類上呼叫
程式碼部分 2:靜態項呼叫。
double aNumber = MyClass.PI;
MyClass.main(new String[0]);
|
靜態方法不能呼叫非靜態方法。this 當前物件引用在靜態方法中也不可用。
- 靜態變數可以用作同一個類物件的共享資料。例如,要實現一個計數器,它儲存在給定時間建立的物件數量,可以定義如下
程式碼清單 1:CountedObject.java
public CountedObject {
private static int counter;
…
public AClass() {
…
counter++;
}
…
public int getNumberOfObjectsCreated() {
return counter;
}
}
|
每次建立物件時,counter 變數都會遞增。
不應使用公共靜態變數,因為這些變數會成為全域性變數,可以在程式中的任何地方訪問。但是可以使用全域性常量。見下文
程式碼部分 3:常量定義。
public static final String CONSTANT_VAR = "Const";
|
- 靜態方法可用於實用程式函式或不屬於任何特定物件的函式。例如
程式碼清單 2:ArithmeticToolbox.java
public ArithmeticToolbox {
…
public static int addTwoNumbers(final int firstNumber, final int secondNumber) {
return firstNumber + secondNumber;
}
}
|
- 另見 靜態方法