Constant 不是Java中的关键字.
这是使任何变量保持不变的概念.为此,我们final在Java中使用关键字,以便在使用final关键字初始化变量后,没有人可以重新分配该变量的值.
现实世界中有一些永远不变的价值观。一个正方形将始终具有四个边,PI到小数点后三个位将始终为3.142,一天将始终为24小时。这些值保持不变。编写程序时,以相同的方式表示它们是有意义的-因为一旦将值分配给变量,这些值将不会被修改。这些变量称为常量。
将变量声明为常量
在声明变量时,我展示了将值赋给int变量很容易:
int hoursInADay = 24;
Run Code Online (Sandbox Code Playgroud)
我们知道这个值在现实世界中永远不会改变,因此我们确保它不会在程序中出现。这可以通过添加关键字修饰符来完成final:
final int HOURS_IN_A_DAY = 24;
Run Code Online (Sandbox Code Playgroud)
除了final关键字之外,您还应该注意,根据标准Java命名约定,变量名的大小写已更改为大写。这使发现代码中哪些变量是常量变得容易得多。
如果现在尝试更改以下值HOURS_IN_A_DAY:
final int HOURS_IN_A_DAY = 24;
HOURS_IN_A_DAY = 36;
Run Code Online (Sandbox Code Playgroud)
我们将从编译器中收到以下错误:
无法将值分配给最终变量HOURS_IN_A_DAY
其他任何原始数据类型变量也是如此。要使它们成为常量,只需在final其声明中添加关键字。
在哪里声明常量
与普通变量一样,您希望将常量的范围限制在使用它们的位置。如果仅在方法中需要常量的值,则在其中声明它:
public class Hours {
public static final int HOURS_IN_A_DAY = 24;
}
Run Code Online (Sandbox Code Playgroud)
使变量“ final”意味着我们不能为该变量重新赋值(即我们只能使用variable = Something 一次且只能使用一次)。
所以对于原语我们可以说最终变量是常量。
但最终变量可以是非常量。举个例子
final Stringbuffer string = new StringBuffer("not");
string.append(" constant");
System.out.println(string);
Run Code Online (Sandbox Code Playgroud)
将打印字符串“not Constant”。这里的“字符串”变量是最终变量,但不是常量。我希望这个能帮上忙