僅僅使用 final 關鍵字可以在 Java 中定義常量嗎?


常量變數是指其值固定且在程式中僅存在一個副本的變數。一旦您聲明瞭一個常量變數併為其賦值,則在整個程式中都無法再次更改其值。

與其他語言不同,Java 不直接支援常量。但是,您仍然可以透過宣告一個變數為靜態和final來建立常量。

靜態 - 一旦您宣告一個變數為靜態,它們將在編譯時載入到記憶體中,即只有一個副本可用。

Final - 一旦您宣告一個變數為 final,您就無法再次修改其值。

因此,您可以透過宣告例項變數為靜態和 final 來在 Java 中建立常量。

示例

 線上演示

class Data {
   static final int integerConstant = 20;
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("value of integerConstant: "+Data.integerConstant);
   }
}

輸出

value of integerConstant: 20
value of stringConstant: hello
value of floatConstant: 1654.22
value of characterConstant: C

沒有 static 關鍵字的常量

如果您建立一個沒有 static 關鍵字的 final 變數,儘管它的值是不可修改的,但每次建立新物件時都會建立一個單獨的變數副本。

示例

例如,考慮以下 Java 程式:

 線上演示

class Data {
   final int integerConstant = 20;
}
public class ConstantExample {
   public static void main(String args[]) {
      Data obj1 = new Data();
      System.out.println("value of integerConstant: "+obj1.integerConstant);
      Data obj2 = new Data();
      System.out.println("value of integerConstant: "+obj2.integerConstant);
   }
}

輸出

value of integerConstant: 20
value of integerConstant: 20

在這裡,我們建立了一個 final 變數並嘗試使用兩個物件列印其值,儘管變數的值在兩個例項中相同,但由於我們為每個例項使用了不同的物件,因此它們是實際變數的副本。

根據常量的定義,您需要在整個程式(類)中只有一個變數副本。

因此,要根據定義建立常量,您需要將其宣告為靜態和 final。

更新於: 2019年10月15日

344 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告