計(jì)算機(jī)二級(jí)JAVA技巧:javadoc注釋

字號(hào):

對(duì)于軟件工程來(lái)說(shuō)代碼的編寫(xiě)并不是重要的事情。文檔編寫(xiě)的重要性不亞于程序代碼本身。如果代碼與文檔是分離的,那么在每次修改代碼時(shí),都需要修改相應(yīng)的文檔就會(huì)是一件相當(dāng)麻煩的事情。所以我們通過(guò)javadoc將代碼同文檔“連接”起來(lái)。
    Javadoc是什么?
    javadoc是Sun公司提供的一個(gè)技術(shù),它從程序源代碼中抽取類(lèi)、方法、成員等注釋形成一個(gè)和源代碼配套的API幫助文檔。也就是說(shuō),只要在編寫(xiě)程序時(shí)以一套特定的標(biāo)簽作注釋?zhuān)诔绦蚓帉?xiě)完成后,通過(guò)Javadoc就可以同時(shí)形式程序的開(kāi)發(fā)文檔了。
    Javadoc輸出的是一些HTML文件,我們可以通過(guò)WEB瀏覽器來(lái)查看它。
    Javadoc的語(yǔ)法:
    所有Javadoc都只能源于/**開(kāi)始和*/結(jié)束。使用javadoc有二種方式,一種是嵌入HTML另一種是使用文檔標(biāo)簽。所謂文檔標(biāo)簽就是一些以 “@”開(kāi)頭的命令,且“@”要置于注釋行的最前面。而“行內(nèi)文檔標(biāo)簽”則可以出現(xiàn)在Javadoc注釋中的任何地方,它們也是以“@”字符開(kāi)頭,但要括在共括號(hào)內(nèi)。
    Javadoc只能為public或者protected成員進(jìn)行文檔注釋。private和包內(nèi)訪問(wèn)的成員的注釋會(huì)被忽略掉。這樣做是有道理的,因?yàn)橹挥衟ublic和protected成員才能在文件之外被使用,這也體現(xiàn)了封裝性的優(yōu)點(diǎn)。
    嵌入HTML:
    Javadoc將HTML代碼嵌入到所生成的HTML文件中。這樣能充分利用HTML的功能。比如:
    /**
    *
    *this is my test program;
    *

    */
    但一般我們不要在HTML里使用標(biāo)題,如,因?yàn)镴avadoc會(huì)插入自己的標(biāo)題,我們的標(biāo)題可能會(huì)干擾它。
    一些有用的標(biāo)簽:
    1)@see:引用其它類(lèi)的文檔,相當(dāng)于超鏈接,Javadoc會(huì)在其生成的HTML文件中,將@see標(biāo)簽鏈到其他的文檔
    @see classname
    這樣在生成的文檔中會(huì)出現(xiàn)"See Also"的超鏈蛸。但是Javadoc不去檢查你的超鏈接是否有效。
    2){@link package.class#member label}
    與@See的功能一樣,只是用label作主超鏈接,而不是用"see also"
    3){@docRoot}:標(biāo)簽產(chǎn)生 到文檔根目錄的相對(duì)路徑,用于文檔樹(shù)頁(yè)面的顯式超鏈接
    4){@inheritDoc}:標(biāo)簽從當(dāng)前這個(gè)類(lèi)的最直接的基類(lèi)中繼承相關(guān)文檔到當(dāng)前的文檔注釋中。
    5)@version:使用方法為@version 2.2.1.2...
    2.2.1.2...是我們作的版本說(shuō)明信息
    6)@author:使用方法為 @author PowerFedora powpro@hotmail.com
    也就是說(shuō)我們可以在@author后加上作者名字,email等聯(lián)系方式
    7)@since:這個(gè)標(biāo)簽允許你指定程序最早使用的版本。比如我們看JDK Document里的每個(gè)類(lèi)最后都會(huì)說(shuō)明從JDK哪個(gè)版本開(kāi)始啟用。
    8)@param:@param name 用于輸入客戶(hù)的姓名
    @param后面是方法的參數(shù),以及相應(yīng)的說(shuō)明
    我們可以使用任意數(shù)量的此標(biāo)簽,每個(gè)參數(shù)都可以有這樣一個(gè)標(biāo)簽
    9)@return this is description
    @return后面是描述返回值的含義,可以延續(xù)幾行。
    10)@throws fully-qualified-class-name description
    fully-qualified-class-name為異常類(lèi)的完整名字,而description告訴你為什么此異常會(huì)在方法中調(diào)用出現(xiàn)。
    11)@deprecated:用于指出一些舊特性已由改進(jìn)的新特性所取代,建議用戶(hù)不要再使用舊特性。
    接下來(lái)我們用一個(gè)代碼將上述所有的標(biāo)簽都使用起來(lái),看一下效果:
    //: test Javadoc,JavaCode.java
    import java.util.*;
    /** 這是一個(gè)為了測(cè)試Javadoc而專(zhuān)門(mén)寫(xiě)的類(lèi)
    * 功能是打印字符串
    * @author PowerFedora
    * @author powpro@hotmail.com
    * @version 1.0
    */
    public class JavaCode {
    /** 這里的main函數(shù),作為java程序的入口
    * @param 參數(shù)為一個(gè)String對(duì)象數(shù)組
    * @return 沒(méi)有返回值的內(nèi)容
    * @exception exceptions 沒(méi)有異常被拋出
    */
    public static void main(String[] args){
    String a = "中華人民共和國(guó)";
    System.out.print(a);
    }
    } ///:~  值得一題的是,如果你使用eclipse的話(huà),完全不需要背這些標(biāo)簽。當(dāng)我們?cè)谛枰⑨尩牡胤酱蛏?**之后,再打@符號(hào)eclipse會(huì)自動(dòng)顯示所支持的標(biāo)簽供我們選擇。
    同樣在生成HTML文檔時(shí)我們也可以利用eclipse的export功能直接導(dǎo)出,否則用javadoc手工來(lái)生成的話(huà)是件相當(dāng)痛苦的事情。
    以下列出來(lái)javadoc支持的參數(shù):
    -author
    -bootclasspath
    -bottom
    -breakiterator
    -charset
    -classpath
    -d
    -docencoding
    -docfilessubdirs
    -doclet
    -docletpath
    -doctitle
    -encoding
    -exclude
    -excludedocfilessubdir
    -extdirs
    -footer
    -group
    -header
    -help
    -helpfile
    -J
    -keywords
    -link
    -linkoffline
    -linksource
    -locale
    -nocomment
    -nodeprecated
    -nodeprecatedlist
    -nohelp
    -noindex
    -nonavbar
    -noqualifier
    -nosince
    -notimestamp
    -notree
    -overview
    -package
    -private
    -protected
    -public
    -quiet
    -serialwarn
    -source
    -sourcepath
    -splitindex
    -stylesheetfile
    -subpackages
    -tag
    -taglet
    -tagletpath
    -title
    -use
    -verbose
    -version
    -windowtitle