# 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标签,可以将它们一个接一个的放在一起。 下面是一个类的说明注释的示例: \`\`\`java /\*\*\* 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中找到。 \`\`\`java 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文件: \`\`\`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 $ \`\`\`