更新時(shí)間:2020-09-08 16:30:16 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3896次
代碼注釋是架起程序設(shè)計(jì)者與程序閱讀者之間的通信橋梁,最大限度的提高團(tuán)隊(duì)開發(fā)合作效率。也是程序代碼可維護(hù)性的重要環(huán)節(jié)之一。所以我們不是為寫注釋而寫注釋。
原則:
1、注釋形式統(tǒng)一
在整個(gè)應(yīng)用程序中,使用具有一致的標(biāo)點(diǎn)和結(jié)構(gòu)的樣式來構(gòu)造注釋。如果在其它項(xiàng)目中發(fā)現(xiàn)它們的注釋規(guī)范與這份文檔不同,按照這份規(guī)范寫代碼,不要試圖在既成的規(guī)范系統(tǒng)中引入新的規(guī)范。
2、注釋內(nèi)容準(zhǔn)確簡(jiǎn)潔
內(nèi)容要簡(jiǎn)單、明了、含義準(zhǔn)確,防止注釋的多義性,錯(cuò)誤的注釋不但無益反而有害。
注釋條件:
1、基本注釋(必須加)
(a)類(接口)的注釋
(b)構(gòu)造函數(shù)的注釋
(c)方法的注釋
(d)全局變量的注釋
(e)字段/屬性的注釋
備注:簡(jiǎn)單的代碼做簡(jiǎn)單注釋,注釋內(nèi)容不大于10個(gè)字即可,另外,持久化對(duì)象或VO對(duì)象的getter、setter方法不需加注釋。具體的注釋格式請(qǐng)參考下面舉例。
2、特殊必加注釋(必須加)
(a)典型算法必須有注釋。
(b)在代碼不明晰處必須有注釋。
(c)在代碼修改處加上修改標(biāo)識(shí)的注釋。
(d)在循環(huán)和邏輯分支組成的代碼中加注釋。
(e)為他人提供的接口必須加詳細(xì)注釋。
備注:此類注釋格式暫無舉例。具體的注釋格式自行定義,要求注釋內(nèi)容準(zhǔn)確簡(jiǎn)潔。
注釋格式:
1、單行(single-line)注釋:“//……”
2、塊(block)注釋:“/……/”
3、文檔注釋:“/……/”
4、javadoc注釋標(biāo)簽語法
author對(duì)類的說明標(biāo)明開發(fā)該類模塊的作者,每個(gè)作者對(duì)應(yīng)一個(gè)標(biāo)簽。
version對(duì)類的說明標(biāo)明該類模塊的版本
see對(duì)類、屬性、方法的說明參考轉(zhuǎn)向,也就是相關(guān)主題一般ClassName是包括包名的全名
param對(duì)方法的說明對(duì)方法中某參數(shù)的說明
return對(duì)方法的說明對(duì)方法返回值的說明一個(gè)參數(shù)對(duì)應(yīng)一個(gè)標(biāo)簽
exception對(duì)方法的說明對(duì)方法可能拋出的異常進(jìn)行說明
或 throws name description成員方法描述方法拋出的異常,每一個(gè)異常對(duì)應(yīng)一個(gè)標(biāo)簽
data類/接口/方法用于顯示類,方法,接口具體創(chuàng)建時(shí)間,或者修改時(shí)間
inheritDoc類/接口/成員方法繼承的文檔
{ link address}或者
linkplain address text}類/接口/方法用于創(chuàng)建一個(gè)指向另一份文檔的超鏈接
@Time 2019年6月28日 22:15:22 {@link #hashCode()}
參考舉例
1.類(接口)注釋
/**
*?類的描述
*?@author?Administrator
*?@Time?2012-11-2014:49:01
*
*/
public?classTest?extends?Button?{
??……
}
2.構(gòu)造方法注釋
例如:
public?class?Test?extends?Button?{
??/**
???*?構(gòu)造方法?的描述
???*?@param?name
???*???????按鈕的上顯示的文字
???*/
??public?Test(String?name){
?????……
??}
}
3.方法注釋
例如
public?class?Test?extends?Button?{
??/**
???*?為按鈕添加顏色
???*@param?color
?????????按鈕的顏色
*@return
*@exception??(方法有異常的話加)
*?@author?Administrator
*?@Time2012-11-20?15:02:29
???*/
??public?voidaddColor(String?color){
????……
??}
}
4.全局變量注釋
public?final?class?String
???implements?java.io.Serializable,?Comparable,CharSequence
{
???/**?The?value?is?used?for?characterstorage.?*/
???private?final?char?value[];
???/**?The?offset?is?the?first?index?of?thestorage?that?is?used.?*/
???private?final?int?offset;
???/**?The?count?is?the?number?of?charactersin?the?String.?*/
???private?final?int?count;
???/**?Cache?the?hash?code?for?the?string?*/
private?int?hash;?//?Default?to?0
……
}
5.字段/屬性注釋
public?class?EmailBody?implements?Serializable{
???private?String?id;
???private?String?senderName;//發(fā)送人姓名
???private?String?title;//不能超過120個(gè)中文字符
???private?String?content;//郵件正文
???private?String?attach;//附件,如果有的話
???private?String?totalCount;//總發(fā)送人數(shù)
???private?String?successCount;//成功發(fā)送的人數(shù)
???private?Integer?isDelete;//0不刪除?1刪除
???private?Date?createTime;//目前不支持定時(shí)?所以創(chuàng)建后即刻發(fā)送
???privateSet?EmailList;
……
}
6.包的注釋
package-info.java-
/**
?*?Provides?the?classes?necessary?to?create?an?applet?and?the?classes?an?applet?uses?
?*?to?communicate?with?its?applet?context.?
?*?
?*?The?applet?framework?involves?two?entities:? ?*?the?applet?and?the?applet?context.?An?applet?is?an?embeddable?window?(see?the? ?*?{@link?java.awt.Panel}?class)?with?a?few?extra?methods?that?the?applet?context? ?*?can?use?to?initialize,?start,?and?stop?the?applet. ?* ?*?@since?1.0 ?*?@see?java.awt ?*/ package?java.lang.applet;
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java代碼注釋規(guī)范”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743