WEB开发网
开发学院WEB开发Jsp JavaDoc,在 Java 的注释上做文章(上) 阅读

JavaDoc,在 Java 的注释上做文章(上)

 2008-01-05 09:47:27 来源:WEB开发网   
核心提示:对于java注释我们主要了解两种:// 注释一行/* ...... */ 注释若干行但还有第三种,文档注释:/** ...... */ 注释若干行,JavaDoc,在 Java 的注释上做文章(上),并写入 javadoc 文档通常这种注释的多行写法如下:/*** .........* .........*/很多人多忽

  对于java注释我们主要了解两种:
  // 注释一行
  /* ...... */ 注释若干行
  但还有第三种,文档注释:
  /** ...... */ 注释若干行,并写入 javadoc 文档
  通常这种注释的多行写法如下:
  /**
  * .........
  * .........
  */
  很多人多忽视了这第三种注释,那么这第三种注释有什么用?javadoc 又是什么东西?下面我们就谈谈。
  一. Java 文档和 Javadoc
  Java 程序员都应该知道使用 JDK 开发,最好的帮助信息就来自 SUN 发布的 Java 文档。它分包、分类具体的提供了各方法、属性的帮助信息,具有具体的类树信息、索引信息等,并提供了许多相关类之间的关系,如继续、实现接口、引用等。
  Java 文档全是由一些 Html 文件组织起来的,在 SUM 的站点上可以下载它们的压缩包。但是你肯定想不到,这些文档我们可以自己生成。——就此打住,再吊一次胃口。
  安装了 JDK 之后,安装目录下有一个 src.jar 文件或者 src.zip 文件,它们都是以 ZIP 格式压缩的,可以使用 WinZip 解压。解压之后,我们就可以看到分目录放的全是 .java 文件。是了,这些就是 Java 运行类的源码了,非常完整,连注释都写得一清二楚……不过,怎么看这些注释都有点似曾相识的感觉?
  这就不希奇了,我们的迷底也快要揭开了。假如你仔细对比一下 .java 源文件中的文档注释 (/** ... */) 和 Java 文档的内容,你会发现它们就是一样的。Java 文档只是还在格式和排版上下了些功夫。再仔细一点,你会发现 .java 源文件中的注释还带有 HTML 标识,如 <B>、
、<Code> 等,在 Java 文档中,该出现这些标识的地方,已经按标识的的定义进行了排版。
  终于真像大白了,原来 Java 文档是来自这些注释。难怪这些注释叫做文档注释呢!不过,是什么工具把这些注释变成文档的呢?
  是该请出 javadoc 的时候了。在 JDK 的 bin 目录下你可以找到 javadoc,假如是 Windows 下的 JDK,它的文件名为 javadoc.exe。使用 javdoc 编译 .java 源文件时,它会读出 .java 源文件中的文档注释,并按照一定的规则与 Java 源程序一起进行编译,生成文档。
  介绍 javadoc 的编译命令之前,还是先了解一下文档注释的格式吧。不过为了能够编译下面提到的若干例子,这里先介绍一条 javadoc 命令:
  javadoc -d 文档存放目录 -author -version 源文件名.java
  这条命令编译一个名为 “源文件名.java”的 java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中 index.html 就是文档的首页。-author 和 -version 两上选项可以省略。
  二. 文档注释的格式
  文档注释可以用于对类、属性、方法等进行说明。写文档注释时除了需要使用 /** .... */ 限定之外,还需要注重注释内部的一些细节问题。
  1. 文档和文档注释的格式化
  生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。比如,需要换行时,不是敲入一个回车符,而是写入
,假如要分段,就应该在段前写入 <p>。
  因此,格式化文档,就是在文档注释中添加相应的 HTML 标识。
  文档注释的正文并不是直接复制到输出文件 (文档的 HTML 文件),而是读取每一行后,删掉前导的 * 号及 * 号以前的空格,再输入到文档的。如
  /**
  * This is first line.

  ***** This is second line.

  This is third line.
  */ 
  编译输出后的 HTML 源码则是
  This is first line.

  This is second line.

  This is third line. 
  前导的 * 号答应连续使用多个,其效果和使用一个 * 号一样,但多个 * 号前不能有其它字符分隔,否则分隔符及后面的 * 号都将作为文档的内容。* 号在这里是作为左边界使用,如上例的第一行和第二行;假如没有前导的 * 号,则边界从第一个有效字符开始,而不包括前面的空格,如上例第三行。
  还有一点需要说明,文档注释只说明紧接其后的类、属性或者方法。如下例:
  /** comment for class */
  public class Test {
  /** comment for a attribute */
  int number;
  /** comment for a method */
  public void myMethod() { ...... }
  ......
  }
  上例中的三处注释就是分别对类、属性和方法的文档注释。它们生成的文档分别是说明紧接其后的类、属性、方法的。“紧接”二字尤其重要,假如忽略了这一点,就很可能造成生成的文档错误。如
  import java.lang.*;
  /** commnet for class */
  public class Test { ...... }
  // 此例为正确的例子
  这个文档注释将生成正确的文档。但只需要改变其中两行的位置,变成下例,就会出错:
  /** commnet for class */
  import java.lang.*;
  public class Test { ...... }
  // 此例为错误的例子
  这个例子只把上例的 import 语句和文档注释部分交换了位置,结果却大不相同——生成的文档中根本就找不到上述注释的内容了。原因何在?
  “/** commnet for class */”是对 class Test 的说明,把它放在“public class Test { ...... }”之前时,其后紧接着 class Test,符合规则,所以生成的文档正确。但是把它和“import java.lang.*;”调换了位置后,其后紧接的就是不 class Test 了,而是一个 import 语句。由于文档注释只能说明类、属性和方法,import 语句不在此列,所以这个文档注释就被当作错误说明省略掉了。
  2. 文档注释的三部分
  根据在文档中显示的效果,文档注释分为三部分。先举例如下,以便说明。
  /**
  * show 方法的简述.
  * <p>

Tags:JavaDoc Java 注释

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接