我使用的是NetBeans IDE,在Java之前,我是一名C++程序員。從C++中,我學到的是常量變量名只能包含大寫字母。我認爲大多數編程語言表明,常量變量應該只包含帶下劃線的大寫字母來分隔單詞。爲什麼非靜態最終成員變量不需要遵循常量命名約定?
我的IDE,NetBeans只會在我嘗試聲明小寫字母的static
成員變量時警告我。沒關係,如果變量是final
,但是非靜態的。
final int mem1 = 90; // no warning
static final int mem2 = 90; // warning
不應該強制程序員使用大寫字母來命名任何類型的(靜態,非靜態)常量變量嗎?
這是一個命名約定。你說得對,爲了可讀性應該遵循,但我不認爲它會被強制執行,也不應該強制執行。 – SomeJavaGuy
因爲命名約定不是Java語言規範的一部分。 – EJP
非靜態的'final'不是一個真正的常量。它也可以基於一些運行時計算值在構造函數中初始化。另請參見http://stackoverflow.com/questions/10844268/difference-between-final-variables-vs-static-final-variables –