java入門---文件註釋 &javadoc
Java 支援三種註釋方式。前兩種分別是 // 和 /* */,第三種被稱作說明註釋,它以 /** 開始,以 */結束。說明註釋允許你在程式中嵌入關於程式的資訊。你可以使用 javadoc 工具軟體來生成資訊,並輸出到HTML檔案中。說明註釋,使你更加方便的記錄你的程式資訊。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 標籤,可以將它們一個接一個的放在一起。下面是一個類的說明註釋的例項:
/*** 這個類繪製一個條形圖
* @author runoob
* @version 1.2
*/
我們再來看下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...ConstructingJavadoc information...StandardDoclet version 1.5.0_13Building tree for all the packages and classes...GeneratingSquareNum.html...SquareNum.java:39: warning -@return tag cannot be used\ in method withvoidreturn type.Generatingpackage-frame.html...Generatingpackage-summary.html...Generatingpackage-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 $好啦,本次記錄就到這裡了。如果感覺不錯的話,請多多點贊支援哦。。。