跳轉到內容

Java 程式設計/關鍵字/static

來自 Wikibooks,開放的書籍,開放的世界

static 是一個 Java 關鍵字。它可以應用於欄位、方法或 內部類。靜態欄位、方法或類對於定義它的整個類只有一個例項,即使程式中沒有該類的例項也是如此。例如,Java 入口點 (main()) 必須是靜態的。靜態方法不能是 抽象 的。它必須放在變數型別或方法返回值型別之前。建議將其放在訪問修飾符之後,final 關鍵字之前

Example 程式碼部分 1:靜態欄位和方法。
public static final double PI = 3.1415926535;

public static void main(final String[] arguments) {
   //…
}

靜態項可以在例項化的物件上呼叫,也可以直接在類上呼叫

Example 程式碼部分 2:靜態項呼叫。
double aNumber = MyClass.PI;
MyClass.main(new String[0]);

靜態方法不能呼叫非靜態方法。this 當前物件引用在靜態方法中也不可用。

  • 靜態變數可以用作同一個類物件的共享資料。例如,要實現一個計數器,它儲存在給定時間建立的物件數量,可以定義如下
Computer code 程式碼清單 1:CountedObject.java
public CountedObject {
   private static int counter;
   
   public AClass() {
      
      counter++;
   }
   
   public int getNumberOfObjectsCreated() {
      return counter;
   }
}

每次建立物件時,counter 變數都會遞增。

不應使用公共靜態變數,因為這些變數會成為全域性變數,可以在程式中的任何地方訪問。但是可以使用全域性常量。見下文

Example 程式碼部分 3:常量定義。
public static final String CONSTANT_VAR = "Const";
  • 靜態方法可用於實用程式函式或不屬於任何特定物件的函式。例如
Computer code 程式碼清單 2:ArithmeticToolbox.java
public ArithmeticToolbox {
   
   public static int addTwoNumbers(final int firstNumber, final int secondNumber) {
        return firstNumber + secondNumber;
   }
}
另見 靜態方法
華夏公益教科書