我正在使用 NetBeans IDE,在使用 Java 之前,我是一名 C++ 程序员。从 C++ 中,我了解到常量变量名称应该只包含大写字母。我认为大多数编程语言都建议常量变量应该只包含大写字母并用下划线来分隔单词。
当我尝试用小写字母声明 static
成员变量时,我的 IDE NetBeans 仅会警告我有关约定的信息。如果变量是final
,但不是静态的,那就没问题了。
final int mem1 = 90; // no warning
static final int mem2 = 90; // warning
难道程序员不应该被迫使用大写字母来命名任何类型的(静态、非静态)常量变量吗?
最佳答案
final
不会使值成为常量,它只是意味着该字段的值只能分配一次。
以下是非常量最终字段的示例:
public final class IntHolder {
private final int value;
public IntHolder(int value) {
this.value = value;
}
public int get() {
return value;
}
}
这里,value
字段对于 IntHolder
的每个实例都明显不同,因此它不是常量。将字段命名为常量只会导致困惑。
关于java - 为什么非静态最终成员变量不需要遵循常量命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38581427/