Java 文件註釋


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

說明註解允許你在程式中嵌入關於程式的資訊。你可以使用javadoc工具軟體來產生訊息,並輸出到HTML檔案中。

說明註釋,是你更面向的記錄你的程式的資訊。


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

文件註解

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

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

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

下面是一個類別的說明註解的範例:

/*** This class draws a bar chart.
* @author Zara Ali
* @version 1.2
*/

javadoc輸出什麼

javadoc工具將你Java程式的原始程式碼作為輸入,輸出一些包含你程式註解的HTML檔。

每一個類別的資訊將在獨自的HTML檔案裡。 javadoc也可以輸出繼承的樹狀結構和索引。

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

實例

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

在經過javadoc處理之後,SquareNum類別的註解將會在SquareNum.html中找到。

import java.io.*;
 
/**
* This class demonstrates documentation comments.
* @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
$