1、套件名稱統一使用小寫,點分隔符號之間有且僅有一個自然語意的英文單字。包名統一使用單數形式,但是類別名稱如果有複數意義,類別名稱可以使用複數形式。
正例:應用程式工具包名為com.java.util、類別名為StringUtils
#2、類別名稱、介面名稱使用UpperCamelCase風格,必須遵從駝峰形式,但下列情形例外:DO/BO/DTO/VO/AO/PO/UID等。
正例:
UserLoginCheckService/UserDO
反例:
UserLoginCheckService/UserDO
3、方法名稱、參數名稱、成員變數、局部變數都統一使用lowerCamelCase風格,必須遵從駝峰形式。
正例:
userServiceImpl
反例:
userServiceImpl
4、常數命名全部大寫,單字間用底線隔開,力求語意表達完整清楚,不要嫌名字長。
正例:
MAX_BOOK_COUNT/CACHE_EXPIRED_TIME
反例:
MAX_COUNT/EXPIRED_TIME
5、為了達到程式碼自解釋的目標,任何自訂程式設計元素在命名時,使用盡量完整的單字組合來表達其意,即要做到「見名知意」。
正例:在JDK 中,表達原子更新的類別名稱為:AtomicReferenceFieldUpdater
反例:
String a = "李四"; // 天啦噜,鬼知道你这个a是啥意思啊
6、定義陣列時,類型與中括號緊鄰相連。
正例:
int[] array = new int[10]; int array[] = new int[10]; // 不建议这样写
7、抽象類別命名使用Abstract 或Base 開頭;異常類別命名使用Exception 結尾;測試類別命名以它要測試的類別的名稱開始,以Test 結尾。
正例:
AbstractService/CommonException/DemoTest
8、杜絕完全不規範的縮寫,避免望文不知義。
反例:AbstractClass「縮寫」命名成 AbsClass;condition「縮寫」 命名成 condi,此類隨意縮寫嚴重降低了程式碼的可閱讀性。
9、如果模組、 介面、類別、方法使用了設計模式,在命名時需體現出具體模式。
說明:將設計模式體現在名字中,有利於閱讀者快速理解架構設計理念。
正例:
public class OrderFactory; public class LoginProxy; public class ResourceObserver;
10、對於 Service 和 DAO 類,基於 SOA 的理念,暴露出來的服務一定是接口,內部的實現類用Impl 的後綴與接口區別。
正例:CacheServiceImpl實作CacheService介面
11、如果是形容能力的介面名稱,取對應的形容詞為介面名稱(通常是–able 的形容詞)。
正例:JDK中的Comparable介面
12、在long或Long賦值時,數值後使用大寫的L,不能是小寫的l,小寫容易跟數字1 混淆,造成誤解。
說明:Long a = 2l;寫的是數字的 21,還是 Long 型的 2 ? ?
13、不允許任何魔法值(即未經預先定義的常數)直接出現在程式碼中
正例:
public static final ORDER_REDIS_KEY_PREFIX = "orderId_"; String orderRedisKey = ORDER_REDIS_KEY_PREFIX + orderId;
反例:
String redisKey = "orderId_" + orderId;
14、枚舉類別名帶上Enum後綴,枚舉成員名稱需要全大寫,單字間用底線隔開。
正例:枚舉名字為ProcessStatusEnum的成員名稱:SUCCESS / UNKNOWN_REASON
PHP中文網,有大量免費的JAVA入門教程,歡迎大家學習!
以上是java如何命名的詳細內容。更多資訊請關注PHP中文網其他相關文章!