更新時間:2020-06-17 14:29:40 來源:動力節(jié)點 瀏覽2138次
本文不討論如何使用javadoc工具自動生成文檔的方法,而是主要探討應(yīng)該如何去寫文檔注釋
文檔注釋概覽
“文檔注釋”(Java Doc Comments)是專門為了用javadoc工具自動生成文檔而寫的注釋,它是一種帶有特殊功能的注釋。
文檔注釋與一般注釋的最大區(qū)別在于起始符號是/**而不是/*或//。
比如:
/**
*這是文檔注釋
*/
/*
*這是一般注釋
*/
//這是一般注釋
在一些IDE(比如Eclipse)中,文檔注釋會以不同于普通注釋的顏色高亮顯示。
此外,文檔注釋只負(fù)責(zé)描述類(class)、接口(interface)、方法(method)、構(gòu)造器(constructor)、成員字段(field)。相應(yīng)地,文檔注釋必須寫在類、接口、方法、構(gòu)造器、成員字段前面,而寫在其他位置,比如函數(shù)內(nèi)部,是無效的文檔注釋。
文檔注釋采用HTML語法規(guī)則書寫,支持HTML標(biāo)記(tag),同時也有一些額外的輔助標(biāo)記。需要注意的是,這些標(biāo)記不是給人看的(通常他們的可讀性也不好),他們的作用是為了javadoc工具更好地生成最終文檔。所以,雖然有些標(biāo)記寫起來麻煩且看著不直觀,還是要老老實實按規(guī)矩寫滴。
文檔注釋的基本內(nèi)容
一個文檔注釋由兩部分組成:
/**
*描述部分(description)
*
*標(biāo)記部分(block tags)
*/
描述部分自然不用多說,所謂的標(biāo)記符號指的是 param, return, see之類的,相信只要看過開源java代碼的話應(yīng)該都見過。
下面是一個描述一個方法的文檔注釋的例子
/**
*Returns an Image object that can then be painted on the screen.
*The url argument must specify an absolute{ link URL}.The name
*argument is a specifier that is relative to the url argument.
*<p>
*This method always returns immediately,whether or not the
*image exists.When this applet attempts to draw the image on
*the screen,the data will be loaded.The graphics primitives
*that draw the image will incrementally paint on the screen.
*
* param url an absolute URL giving the base location of the image
* param name the location of the image,relative to the url argument
* return the image at the specified URL
* see Image
*/
public Image getImage(URL url,String name){
try{
return getImage(new URL(url,name));
}catch(MalformedURLException e){
return null;
}
}
需要注意的幾點:
1.第一行以特殊的文檔定界符/**開頭
3.在描述段落和標(biāo)記段落之間空一行,描述段落和標(biāo)記段落必須分開,不能揉在一起,描述段落必須在標(biāo)記段落之前
4.每一行注釋都應(yīng)該跟后面描述的類、方法等保持同樣距離的縮進(jìn),比如這樣就是錯誤的
class Image{
/**
*沒有跟下面的方法保持同樣的縮進(jìn)
*/
public Image getImage(URL url,String name){
...
}
}
5.從javadoc 1.4之后,除第一行和最后一行外,可以省略其他行的前導(dǎo)星號(*),但是一般不這么做
描述部分(Description)
描述部分的第一行應(yīng)該是一句對類、接口、方法等的簡單描述,這句話最后會被javadoc工具提取并放在索引目錄中。
怎么界定第一句話到哪結(jié)束了呢?答案是跟在第一個句號(英文標(biāo)點)之后的tab、空行或行終結(jié)符規(guī)定了第一句的結(jié)尾。
例如下面這句注釋,第一句的結(jié)尾是Prof.:
/**
*This is a simulation of Prof.Knuth's MIX computer.
*/
除了普通的文本之外,描述部分可以使用:
1.HTML語法標(biāo)簽,例如<b>xxx</b>
2.javadoc規(guī)定的特殊標(biāo)簽,例如{ link xxx}。標(biāo)簽的語法規(guī)則是:{ 標(biāo)簽名標(biāo)簽內(nèi)容}
需要注意的地方:
1.標(biāo)簽在有javadoc工具生成文檔時會轉(zhuǎn)化成特殊的內(nèi)容,比如{ link URL}標(biāo)簽會被轉(zhuǎn)化成指向URL類的超鏈接
2.如果注釋包含多段內(nèi)容,段與段之間需要用<p>分隔,空行是沒用的
3.最后結(jié)尾行*/和起始行不同,這里只有一個星號
4.為了避免一行過長影響閱讀效果,務(wù)必將每行的長度限制在80個字符以內(nèi)
5.善用javadoc工具的復(fù)制機制避免不必要的注釋:
如果一個方法覆蓋了父類的方法或?qū)崿F(xiàn)了接口種的方法,那么javadoc工具會在該注釋里添加指向原始方法的鏈接,此外如果新方法沒有注釋,那么javadoc會把原始方法的注釋復(fù)制一份作為其注釋,但是如果新方法有注釋了,就不會復(fù)制了。
注釋風(fēng)格:
1.使用<code>關(guān)鍵字</code>來強調(diào)關(guān)鍵字,建議強調(diào)的內(nèi)容有:java關(guān)鍵字、包名、類名、方法名、接口名、字段名、參數(shù)名等
2.控制{ link xxx}的數(shù)量,太多的鏈接會使文檔的可讀性很差,因為讀者總是跳來跳去。不要出現(xiàn)相同的鏈接,同樣的鏈接只保留第一個;不要為java自帶的內(nèi)容或是常識性的內(nèi)容提供鏈接
3.描述一個方法時,應(yīng)當(dāng)只保留方法名字,不要附帶方法的參數(shù)。比如有個方法是add(Object obj),那么用add指代該方法即可,而不是add(Object obj)
4.英文注釋可以是短語也可以是句子。如果是句子,首字母要大寫,如果是短語,首字母小寫。
5.英文注釋使用第三人稱,而不是第二人稱。比如:
/**
*Gets the label(建議)
*/
/**
*Get the label(不建議)
*/
6.方法的注釋應(yīng)該以動詞或動詞詞組開頭,因為方法是一個動作。比如:
/**
*Gets the label of this button(建議)
*/
/**
*This method gets the label(不建議)
*/
7.當(dāng)描述類、接口、方法這類的概念時,可以不用指名"類"、"接口"、"方法"這些詞語,比如:
/**
*A button label(建議)
*/
/**
*This field is a button label(不建議)
*/
8.英文使用this而不是the指代當(dāng)前類,比如:
/**
*Gets the toolkit for this component(建議)
*/
/**
*Gets the toolkit for the component(不建議)
*/
9.API名應(yīng)該是能夠簡單自我說明的,如果文檔注釋只是簡單重復(fù)API的名稱還不如沒有文檔,所以文檔注釋應(yīng)該至少提供一些額外信息,否則干脆不要注釋
10.英文注釋避免拉丁風(fēng)格的縮寫。比如使用"also knwon as"而不是"aka",使用"that is"或"to be specific"而不是"i.e.",使用"for example"而不是"e.g.",使用"in other words"或"namely"而不是"viz."
Java技術(shù)內(nèi)容
Java中的注釋:http://www.dabaquan.cn/tutorial_java_se/59.html
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“編程基礎(chǔ)分享,Java文件注釋”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)
初級 202925
初級 203221
初級 202629
初級 203743