在 Java 中,final 关键字可以单独用来定义常量吗?

javaobject oriented programmingprogramming更新于 2024/6/30 0:16:00

常量变量的值是固定的,在程序中只有一个副本。一旦声明一个常量变量并为其赋值,就不能在整个程序中再次更改其值。

与其他语言不同,Java 不直接支持常量。但是,您仍然可以通过将变量声明为 static 和 final 来创建常量。

Static − 一旦将变量声明为 static,它们将在编译时加载到内存中,即只有一个副本可用。

Final −一旦将变量声明为 final,就不能再修改其值。

因此,您可以通过将实例变量声明为 static 和 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);
   }
}

输出

integerConstant 的值:20
stringConstant 的值:hello
floatConstant 的值:1654.22
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("integerConstant 的值:"+obj1.integerConstant);
      Data obj2 = new Data();
      System.out.println("integerConstant 的值:"+obj2.integerConstant);
   }
}

输出

integerConstant 的值:20
integerConstant 的值:20

这里我们创建了一个 final 变量,并尝试使用两个对象打印其值,认为变量的值在两个实例中是相同的,因为我们对每个实例使用了不同的对象,它们是实际变量的副本。

根据常量的定义,您需要在整个程序(类)中拥有该变量的单个副本。

因此,要创建常量作为 pert 定义,您需要将其声明为 static 和 final。


相关文章