簡體   English   中英

為什么非靜態最終成員變量不需要遵循常量命名約定?

[英]Why non-static final member variables are not required to follow the constant naming conventions?

我使用的是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;
  }
}

對於IntHolder每個實例, value字段明顯不同,因此它不是常量。 將該字段命名為常量只會導致混淆。

只有常量應為大寫。 然而,它可能取決於程序員如何遵循慣例。 有些人還喜歡使用'_'開始常量,后跟小寫的名稱。 而且,沒有必要在編譯器中進行這樣的檢查,因為它可能取決於程序員的觀點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM