1. Java 命名約定
除了以下幾個特例之外,命名時應始終采用完整的英文描述符。此外,一般應采用小寫字母,但類名、接口名以及任何非初始單詞的第一個字母要大寫。
1.1 一般概念
n 盡量使用完整的英文描述符
n 采用適用於相關領域的術語
n 采用大小寫混合使名字可讀
n 盡量少用縮寫,但如果用了,要明智地使用,且在整個工程中統一
n 避免使用長的名字(小於 15 個字母是個好主意)
n 避免使用類似的名字,或者僅僅是大小寫不同的名字
n 避免使用下劃線(除靜態常量等)
1.2 示范
包(Package) 采用完整的英文描述符,應該都是由小寫字母組成。對於全局包,將你的 Internet 域名反轉並接上包名。 java.awt,com.ambysoft.www.persistence
類(Class) 采用完整的英文描述符,所有單詞的第一個字母大寫。 Customer, SavingsAccount
接口(Interface) 采用完整的英文描述符說明接口封裝,所有單詞的第一個字母大寫。習慣上,名字後面加上後綴 able, ible 或者 er,但這不是必需的。 Contactable,Prompter
組件/部件(Component) 使用完整的英文描述來說明組件的用途,末端應接上組件類型。 okButton, customerList,fileMenu
異常(Exception) 通常采用字母 e 表示異常。 e
類變量 字段采用完整的英文描述,第一個字母小寫,任何中間單詞的首字復笮礎?firstName, lastName
實參/參數 同字段/屬性的命名規則 public void setFirstName(String firstName){ this.firstName = firstName;}
局部變量 同字段/屬性的命名規則
獲取成員函數 被訪問字段名的前面加上前綴 get。 getFirstName(), getLastName()
布爾型的獲取成員函數 所有的布爾型獲取函數必須用單詞 is 做前綴。 isPersistent(), isString()
設置成員函數 被訪問字段名的前面加上前綴 set。 setFirstName(), setLastName(),setWarpSpeed()
普通成員函數 采用完整的英文描述說明成員函數功能,第一個單詞盡可能采用一個生動的動詞,第一個字母小寫。 openFile(), addAccount()
靜態常量字段(static final) 全部采用大寫字母,單詞之間用下劃線分隔。 MIN_BALANCE, DEFAULT_DATE
循環計數器 通常采用字母 i,j,k 或者 counter 都可以接受。 i, j, k, counter
數組 數組應該總是用下面的方式來命名:objectType[]。 byte[] buffer;
2. Java 注釋約定
一個很好的可遵循的有關注釋的經驗法則是:問問你自己,你如果從未見過這段代碼,要在合理的時間內有效地明白這段代碼,你需要哪些信息。
2.1. 一般概念
n 注釋應該增加代碼的清晰度
n 保持注釋的簡潔
n 在寫代碼之前寫注釋
n 注釋出為什麼做了一些事,而不僅僅是做了什麼
2.2. 示范
文檔注釋 在緊靠接口、類、成員函數和字段聲明的前面注釋它們。 /** 客戶:客戶是我們將服務和產品賣給的人或機構。*/
C 語言風格 采用 C 語言風格的注釋去掉不再使用但你仍想保留的代碼。仍想保留是因為用戶萬一會改變想法,或者在調試過程中想讓它暫時失效。 /* 這部分代碼因為已被它之前的代碼取代,由 B.Gustafsson, 於 1999 年 6 月 4 日注釋掉。如果兩年之後還未使用,將其刪除。. . . (源代碼)*/
單行 在成員函數內采用單行注釋,來說明業務邏輯、代碼段和暫時變量的聲明。注釋符"//"後必須緊跟一個空格,然後才是注釋信息。 // 遵照 Sarek 的規定,給所有// 超過 $1000 的發貨單// 打 5% 的折扣。讓利活// 動於 1995年 2 月開始.
2.3. 注釋哪些部分
類 類的目的、即類所完成的功能,注釋出采用的不變量。
接口 設置接口的目的、它應如何被使用以及如何不被使用。
成員函數注釋 對於設置與獲取成員函數,在成員變量已有說明的情況下,可以不加注釋;普通成員函數要求說明完成什麼功能,參數含義是什麼返回什麼;
普通成員函數內部注釋 控制結構,代碼做了些什麼以及為什麼這樣做,處理順序等。
實參/參數 參數含義、及其它任何約束或前提條件