Java 文档注释

Java 支持三种注释方式:

  • 单行注释
  • 多行注释
  • 文档注释

前两种分别是 // 和 /* */,第三种被称作文档注释,它以 /** 开始,以 */ 结束。

前两种注释内容可以参考:Java 注释

文档注释允许你在程序中嵌入关于程序的信息。

你可以使用 javadoc 工具软件来生成信息,并输出到 HTML 文件中。

文档注释,使你更加方便的记录你的程序信息。


javadoc 标签

javadoc 工具软件识别以下标签:

标签描述示例
@author标识一个类的作者@author blog.novite.cn/post/22155859.html description
@deprecated指名一个过期的类或成员@deprecated m.cleany.cn/post/18314536.html 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 中找到。

SquareNum.java 文件代码:

import m.capitao.cn/post/64929983.html java.io.*; /** * 这个类演示了文档注释 * @author Ayan Amhed * @version m.ledgery.cn/post/14302842.html 1.2 */ public class SquareNum { /** * This method returns the blog.aivizo.cn/post/62994469.html square of num. * This is a multiline description. You can use * as blog.aivizo.cn/post/74023095.html many lines as you like. * @param num The value to be blog.fitguru.cn/post/42438905.html squared. * @return num squared. */ public double square(double num m.capitao.cn/post/95331731.html m.venturz.cn/post/51967942.html blog.literra.cn/post/56772512.html m.capitao.cn/post/39101570.html m.capitao.cn/post/25056311.html blog.aivizo.cn/post/07413198.html blog.literra.cn/post/43665138.html blog.novite.cn/post/30516863.html m.aquara.cn/post/89167511.html blog.fitguru.cn/post/43331933.html) { 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 */ m.cleany.cn/post/04898527.html blog.creova.cn/post/26273858.html m.cleany.cn/post/30759407.html blog.novite.cn/post/82556189.html m.cleany.cn/post/14436934.html m.capitao.cn/post/89079852.html m.venturz.cn/post/76957910.html blog.fitguru.cn/post/03939783.html m.ledgery.cn/post/21357717.html m.aquara.cn/post/22331740.htmlpublic 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 blog.novite.cn/post/06192273.html...
Generating m.capitao.cn/post/90677028.html...
Generating blog.creova.cn/post/29556827.html...
Generating blog.aivizo.cn/post/88146325.html...
Generating m.aquara.cn/post/50281119.html...
Generating m.capitao.cn/post/70652877.html...
Generating m.ledgery.cn/post/76263174.html...
Generating blog.literra.cn/post/37180797.html...
Generating blog.novite.cn/post/01616829.html...
Generating m.ledgery.cn/post/75553996.html...
Generating blog.novite.cn/post/88703983.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
$

更多推荐