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 $