Java代码书写规范
一、通用規范
1.1命名規范
1.?使用全單詞表示
2.?使用貼切的詞匯
3.?使用大小寫混合
4.?盡量少用縮略詞,否則,維護一個標準的縮略詞表
5.?避免過長,小于15
6.?避免類似的命名或僅在大小寫上區分的命名
7.?標準縮略詞做一個單詞處理
1.2文檔規范
1.?增加注釋,以確保代碼清晰
2.?無需注釋的程序,可能也不值得運行
3.?避免修飾性注釋
4.?保持注釋簡潔
5.?寫代碼之前寫注釋
6.?注釋中說明代碼的原因,而不是結果
二、Java編碼規范
2.1命名和大小寫規范:
下面這些廣泛使用的命名規范可以應用到Java中的包、類、方法、屬性和常量。因為這些規范的使用非常普遍,而且它們還影響到了我們定義的類的公共API,所以我們應該認真遵守這些規范:
1.?包
???保證包的名稱是唯一的,包的名稱前綴以我們的網絡域名稱,包名小寫(例如com.itsv.utils)置于文件最上一行
2.?類
???第一個字母必須大寫,所以類名稱是大小寫混合的(例如String);如果類名稱是由多個單詞組成的,那么每個單詞都應該以大寫字母開頭(例如StringBuffer);如果一個類名稱或者類名稱中的一個單詞是字母縮寫詞,那么我們可以把這個縮寫詞中的每個字母都寫成大寫(例如URL、HTMLParser)。因為設計的類是用來代表對象的,所以我們在為類起名稱時應盡量選擇名詞。
???如果是某一種特殊類別的類,則可以統一采用特殊簡短后綴來標識,這些后綴全部大寫。例如,對所有處理與數據庫相關的類,可以在類名后加上DAOImpl來標識
引用類: 全部置于包名之后,文件所定義類名之前
類的定義順序:
class?xxx
constructors
finalize
public?member?functions
protected?member?functions
private?member?functions
private?fields
3.?接口
???接口名稱遵循的大小寫規則和類名稱是一樣的。用接口來提供一些關于實現它的類的額外信息,常用形容詞作為接口名稱(例如Runnable),當接口更像一個抽象的超類時,我們又用名詞來作為接口的名稱(例如Document)
在創建類之前先創建公共接口,以確定類的應用存根,接口的命名用描述性的形容詞或名詞,或者加前綴I?或后綴Ifc:
Runnable
Cloneable
Singleton
DataInput
4.?方法
???方法名稱總是以小寫字母開頭。如果名稱中包含的單詞多于一個(一般使用動詞和名詞組合而成),那么除第一個單詞外的所有單詞都應該以大寫字母開頭,動詞放在首單詞,例如insert()、insertObject()。
成員變量訪問方法accessor的命名:
使用Getter-get和Setter-set方法,對于boolean類型的可以使用is代替get
Getter還有can和has
成員方法的范圍:
范圍 | 描述 | 正確使用方法 |
Public | 任何類或對象的任何成員方法中可以調用 | 當該方法必須被當前類分支之外的類或對象調用時 |
Protected | 只能被同類及所有子類的成員方法調用 | 當該方法只能被當前類及其分支之內的類或對象調用時 |
private | 只能被同類的成員方法調用,子類的成員方法不能調用 | 封裝一個類的特有方法,當前類所特有,其他類或子類沒有 |
缺省的為軟件包級可用,對相同軟件包package的類可使用,不能在不同軟件包的類中調用 |
5.?屬性和常量
???非常量的屬性名稱所遵循的大小寫規則和方法名稱是一樣的。如果一個屬性是靜態final類型的常量,那么該屬性的所有字母都應該大寫。如果常量的名稱中包含多個單詞,那么應該用下劃線來分隔這些單詞(例如MAX_VALUE)。此外,選擇的屬性名稱應該是最能說明屬性或其取值的含義的。
集合屬性(Array,?Vector)采用復數
firstName
orderItems
常量命名
static?final?MAX_VALUE
屬性范圍
范圍 | 描述 | 用于 |
public | 可以在所有類的方法中引用 | 最好不定義此類屬性 |
protected | 可以在本類及子類方法中引用 | 最好不定義此類屬性 |
private | 只能用于同類的方法中 | 所有屬性都應是此種類型并通過訪問器accessor訪問 |
6.?參數
???方法參數名稱會出現在方法的文檔中,所以參數含義應盡可能明確。一般參數名稱為一個單詞。
成員函數的參數標準:
使用接口代替類作為參數,實現多態性
7.?局部變量
???命名規則和方法以及屬性的命名規則一樣。
2.2?注釋規范
2.2.1總體說明
1.?三種類型的Java注釋
注釋類型 | 用于 | 例子 |
文檔注釋 | 寫在類、接口、成員函數和屬性的定義緊前方,由javadoc用于創建類的外部文檔。 | /** ?*?document?comments ?*/ |
C風格注釋 | 暫時注釋不用的代碼 | /* ???comments ?*/ |
單行注釋 | 在成員函數中用于注釋商業邏輯,代碼段,變量定義 | //?comments |
文檔注釋的主體部分一開始應該先用一句話概括類、接口、方法或屬性完成的功能,書寫時單獨占一行。概括性句子的后面還可以跟若干條,詳細介紹類、接口、方法或屬性的注釋語句及段落。
在描述性的段落之后,文檔注釋還可以包括其他一些段落,每個段落都以一個特殊的文檔注釋標簽開始,例如@auther、@param。
2.?doc注釋的標簽
@author?名稱???后加上相應的作者
@version?文本??插入指定文本的版本信息
@param?參數-名稱描述
@return?描述
@exception?完整的類名稱?描述信息
@throws?完整的類名稱?描述信息
@see?引用其他類,格式如下:@see?類名??
???????????????????????????@see?完整類名
???????????????????????????@see?完整類名#方法名
{@link引用}
@deprecated?解釋
@since?版本號
@serial?描述信息
@serialField名稱?類型?描述信息
@serialData描述信息
@beaninfo信息
文檔注釋的描述信息可以包括簡單的HTML標注標簽,不包括HTML的主要結構標簽,例如<H2>和<HR>等。
在文檔注釋中使用標簽{@link}來引用超級鏈接或者是交叉引用,避免用標簽<A>。
如果希望在文檔注釋中包括圖像,可以把圖像文件放在源代碼目錄下的doc文件的子目錄中,然后把圖像取名為和類一樣的名稱,并在名稱之后加上數字作為后綴,例如,可以在叫做Circle類的文檔注釋中包括下面這個HTML標簽,它定義了出現在注釋中的第二張圖片:<IMG?src=”doc-files/Circles-2.gif”>?
2.2.2具體注釋內容
1.?注釋類
類功能說明:注釋類的功能
@author?注釋類的作者
@see??注釋引用類的情況
@version?注釋類的版本信息
2.?注釋成員方法
l?頭部注釋
1.?功能描述:描述成員方法的功能及存在的原因(必填)
2.?@param?參數及名稱描述(必填)
3.?@return?返回值(必填)
4.?@exception?描述信息
5.?@see?引用說明
6.?@since?版本號
7.?存在問題:存在的尚未解決的問題
8.?使用范圍:確定使用范圍及原因
9.?外部變動:對其他對象的變動注釋
10.?修改歷史:注明修改時間、修改人、修改內容、修改原因(必填)
11.?調用方法:說明調用的前提條件和事后條件、說明并發調用情況
l?內部注釋
1.?在方法內部的開始部分統一注釋方法的邏輯
2.?控制結構,結構性語句的起始位置需要注明,控制結構的尾部
3.?注明局部變量
4.?注釋結束括號}
2.3編寫清晰的代碼
1.?注釋文檔
2.?段落化
3.?多行語句段落化
4.?使用空格和空行
5.?方法不能太長,遵循30秒規則
6.?定義消息的傳遞,在注釋中體現
7.?簡短的命令行
8.?將比較的常數放在左方,以防止誤寫為賦值語句
三、?JAVA命名縮略詞表
參見縮略詞表。
總結
以上是生活随笔為你收集整理的Java代码书写规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新手司机,请问怎么才知道自己的机油该不该
- 下一篇: 智行挂式空调如何