命名約定
包名稱
- 軟體包名稱應全部為小寫,不帶下劃線或其他特殊字元。
- 包名稱以開發者公司網址的反向許可權部分開頭。這部分可以遵循專案/程式結構相關的包子結構。
- 不要使用複數形式。遵循標準 API 的慣例,例如
java.lang.annotation
而不是java.lang.annotations
。 - 示例:
com.yourcompany.widget.button
,com.yourcompany.core.api
類,介面和列舉名稱
- 類和列舉名稱通常應該是名詞。
- 介面名稱通常應該是以…才能結尾的名詞或形容詞。
- 使用大寫的每個單詞中的第一個字母的混合大小寫(即 CamelCase )。
- 匹配正規表示式
^[A-Z][a-zA-Z0-9]*$
。 - 使用整個單詞並避免使用縮寫,除非縮寫比長形式更廣泛使用。
- 如果縮寫是較長類名的一部分,則將縮寫格式化為單詞。
- 例如:
ArrayList
,BigInteger
,ArrayIndexOutOfBoundsException
,Iterable
。
方法名稱
方法名稱通常應為動詞或其他操作描述
- 它們應該匹配正規表示式
^[a-z][a-zA-Z0-9]*$
。 - 使用小寫的第一個字母的混合大小寫。
- 例子:
toString
,hashCode
變數
變數名稱應為大小寫混合,第一個字母為小寫
- 匹配正規表示式
^[a-z][a-zA-Z0-9]*$
- 進一步的建議: 變數
- 示例:
elements
,currentIndex
型別變數
對於涉及很少型別變數的簡單情況,請使用單個大寫字母。
- 匹配正規表示式
^[A-Z][0-9]?$
- 如果一個字母比另一個字母更具描述性(例如
K
和V
用於對映中的鍵和值,或者R
用於函式返回型別),請使用該字母,否則使用T
。 - 對於單字母型別變數變得混亂的複雜情況,請使用以全部大寫字母書寫的較長名稱,並使用下劃線(
_
)來分隔單詞。 - 示例:
T
,V
,SRC_VERTEX
常量
常量(static final
欄位,其內容是不可變的,按語言規則或按慣例)應使用全部大寫字母和下劃線(_
)命名以分隔單詞。
- 匹配正規表示式
^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$
- 示例:
BUFFER_SIZE
,MAX_LEVEL
關於命名的其他指南
- 避免在外部作用域中隱藏/遮蔽方法,變數和型別變數。
- 讓名稱的詳細程度與範圍的大小相關聯。 (例如,對大型類的欄位使用描述性名稱,為本地短期變數使用簡要名稱。)
- 在命名公共靜態成員時,如果你認為識別符號將被靜態匯入,請將該識別符號設定為自描述。
- 進一步閱讀: 命名部分 (在官方 Java 風格指南中)
來源: Oracle 的 Java 風格指南