我知道对于C++和Java来说,有一个被广泛接受的命名规范,即常量应该全部大写,用下划线分隔单词。比如这样(Java示例):
public final static Color BACKGROUND_COLOR = Color.WHITE;
public final static Color TEXT_COLOR = Color.BLACK;
这种命名约定易于理解和遵循,但我问自己,为什么选择这种命名约定而不是普通的变量命名约定:
public final static Color backgroundColor = COLOR.WHITE;
public final static Color textColor = COLOR.BLACK;
似乎没有必要改变常量的外观。如果我们想给它们分配一个值,编译器会阻止这样做。事实上,如果以后将常量更改为适当的变量(例如,因为颜色变得可配置),则会出现问题。
那么为什么要将命名常量全部大写呢?是出于历史原因吗?