仅仅使用 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。
广告