我知道变量声明如下:
public class Example {
public static final int MY_CONSTANT = 10;
}
被认为是Java常量。我真的不明白为什么只宣称最终的变量不能算作常数?
答案 0 :(得分:0)
最终但不是静态的变量对于一个对象具有常量值,这意味着它只能由该对象的构造函数修改。但对于不同的对象,变量仍然可以具有不同的值。这就是严格意义上它不是常数的原因。
另一个原因是您不必创建对象来访问静态变量。为什么要创建一个对象才能访问常量?