Java入門 - 高級教程 - 09.文檔注釋

文檔注釋

請參照如上章節導航進行閱讀

1.概述

Java 支援三種注釋方式。前兩種分別是 // 和 /* */,第三種被稱作說明注釋,它以 /** 開始,以 */ 結束。

說明注釋允許你在程式中嵌入關於程式的資訊。你可以使用 javadoc 工具軟體來生成資訊,並輸出到 HTML 文件中。

說明注釋,使你更加方便的記錄你的程式資訊。

2.javadoc標籤

javadoc 工具軟體識別以下標籤:

標籤

描述

示例

@author

標識一個類的作者

@author description

@deprecated

指名一個過期的類或成員

@deprecated description

{@docRoot}

指明當前文檔根目錄的路徑

Directory Path

@exception

標誌一個類拋出的異常

@exception exception-name explanation

{@inheritDoc}

從直接父類繼承的注釋

Inherits a comment from the immediate surperclass.

{@link}

插入一個到另一個主題的鏈接

{@link name text}

{@linkplain}

插入一個到另一個主題的鏈接,但是該鏈接顯示純文本字體

Inserts an in-line link to another topic.

@param

說明一個方法的參數

@param parameter-name explanation

@return

說明返回值類型

@return explanation

@see

指定一個到另一個主題的鏈接

@see anchor

@serial

說明一個序列化屬性

@serial description

@serialData

說明通過 writeObject() 和 writeExternal() 方法寫的數據

@serialData description

@serialField

說明一個 ObjectStreamField 組件

@serialField name type description

@since

標記當引入一個特定的變化時

@since release

@throws

和 @exception 標籤一樣

The @throws tag has the same meaning as the @exception tag.

{@value}

顯示常量的值,該常量必須是 static 屬性

Displays the value of a constant, which must be a static field.

@version

指定類的版本

@version info

3.文檔注釋

在開始的 /** 之後,第一行或幾行是關於類、變數和方法的主要描述。

之後,你可以包含一個或多個各種各樣的 @ 標籤。每一個 @ 標籤必須在一個新行的開始或者在一行的開始緊跟星號(*).

多個相同類型的標籤應該放成一組。例如,如果你有三個 @see 標籤,可以將它們一個接一個的放在一起。

下面是一個類的說明注釋的實例:

/**  * 這個類繪製一個條形圖  * @author runoob  * @version 1.2  */

4.javadoc輸出什麼

javadoc 工具將你 Java 程式的源程式碼作為輸入,輸出一些包含你程式注釋的 HTML 文件。

每一個類的資訊將在獨自的HTML文件里。javadoc 也可以輸出繼承的樹形結構和索引。

由於 javadoc 的實現不同,工作也可能不同,你需要檢查你的 Java 開發系統的版本等細節,選擇合適的 Javadoc 版本。

實例

下面是一個使用說明注釋的簡單實例。注意每一個注釋都在它描述的項目的前面。

在經過 javadoc 處理之後,SquareNum 類的注釋將在 SquareNum.html 中找到。

import java.io.*;    /**  * 這個類演示了文檔注釋  * @author Ayan Amhed  * @version 1.2  */  public class SquareNum {     /**     * This method returns the square of num.     * This is a multiline description. You can use     * as many lines as you like.     * @param num The value to be squared.     * @return num squared.     */     public double square(double num) {        return num * num;     }     /**     * This method inputs a number from the user.     * @return The value input as a double.     * @exception IOException On input error.     * @see IOException     */     public double getNumber() throws IOException {        InputStreamReader isr = new InputStreamReader(System.in);        BufferedReader inData = new BufferedReader(isr);        String str;        str = inData.readLine();        return (new Double(str)).doubleValue();     }     /**     * This method demonstrates square().     * @param args Unused.     * @return Nothing.     * @exception IOException On input error.     * @see IOException     */     public static void main(String args[]) throws IOException     {        SquareNum ob = new SquareNum();        double val;        System.out.println("Enter value to be squared: ");        val = ob.getNumber();        val = ob.square(val);        System.out.println("Squared value is " + val);     }  }

如下,使用 javadoc 工具處理 SquareNum.java 文件:

$ javadoc SquareNum.java  Loading source file SquareNum.java...  Constructing Javadoc information...  Standard Doclet version 1.5.0_13  Building tree for all the packages and classes...  Generating SquareNum.html...  SquareNum.java:39: warning - @return tag cannot be used                        in method with void return type.  Generating package-frame.html...  Generating package-summary.html...  Generating package-tree.html...  Generating constant-values.html...  Building index for all the packages and classes...  Generating overview-tree.html...  Generating index-all.html...  Generating deprecated-list.html...  Building index for all classes...  Generating allclasses-frame.html...  Generating allclasses-noframe.html...  Generating index.html...  Generating help-doc.html...  Generating stylesheet.css...  1 warning  $

Tags: