知识大全 JavaDoc,在 Java 的注释上做文章(上)

Posted

篇首语:守株待兔只能得一餐饱,主动出击方能丰衣足食。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JavaDoc,在 Java 的注释上做文章(上)相关的知识,希望对你有一定的参考价值。

JavaDoc,在 Java 的注释上做文章(上)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  对于Java注释我们主要了解两种   // 注释一行  /* */ 注释若干行  但还有第三种 文档注释   /** */ 注释若干行 并写入 javadoc 文档  通常这种注释的多行写法如下   /**  *   *   */  很多人多忽视了这第三种注释 那么这第三种注释有什么用?javadoc 又是什么东西?下面我们就谈谈   一 Java 文档和 Javadoc  Java 程序员都应该知道使用 JDK 开发 最好的帮助信息就来自 SUN 发布的 Java 文档 它分包 分类详细的提供了各方法 属性的帮助信息 具有详细的类树信息 索引信息等 并提供了许多相关类之间的关系 如继承 实现接口 引用等   Java 文档全是由一些 文件组织起来的 在 SUM 的站点上可以下载它们的压缩包 但是你肯定想不到 这些文档我们可以自己生成 ——就此打住 再吊一次胃口   安装了 JDK 之后 安装目录下有一个 src jar 文件或者 src zip 文件 它们都是以 ZIP 格式压缩的 可以使用 WinZip 解压 解压之后 我们就可以看到分目录放的全是 java 文件 是了 这些就是 Java 运行类的源码了 非常完整 连注释都写得一清二楚……不过 怎么看这些注释都有点似曾相识的感觉?  这就不奇怪了 我们的迷底也快要揭开了 如果你仔细对比一下 java 源文件中的文档注释 (/** */) 和 Java 文档的内容 你会发现它们就是一样的 Java 文档只是还在格式和排版上下了些功夫 再仔细一点 你会发现 java 源文件中的注释还带有 HTML 标识 如 <B> <BR> <Code> 等 在 Java 文档中 该出现这些标识的地方 已经按标识的的定义进行了排版   终于真像大白了 原来 Java 文档是来自这些注释 难怪这些注释叫做文档注释呢!不过 是什么工具把这些注释变成文档的呢?  是该请出 javadoc 的时候了 在 JDK 的 bin 目录下你可以找到 javadoc 如果是 Windows 下的 JDK 它的文件名为 javadoc exe 使用 javdoc 编译 java 源文件时 它会读出 java 源文件中的文档注释 并按照一定的规则与 Java 源程序一起进行编译 生成文档   介绍 javadoc 的编译命令之前 还是先了解一下文档注释的格式吧 不过为了能够编译下面提到的若干例子 这里先介绍一条 javadoc 命令   javadoc d 文档存放目录 author version 源文件名 java  这条命令编译一个名为 源文件名 java 的 java 源文件 并将生成的文档存放在 文档存放目录 指定的目录下 生成的文档中 l 就是文档的首页 author 和 version 两上选项可以省略   二 文档注释的格式  文档注释可以用于对类 属性 方法等进行说明 写文档注释时除了需要使用 /** */ 限定之外 还需要注意注释内部的一些细节问题    文档和文档注释的格式化  生成的文档是 HTML 格式 而这些 HTML 格式的标识符并不是 javadoc 加的 而是我们在写注释的时候写上去的 比如 需要换行时 不是敲入一个回车符 而是写入 <br> 如果要分段 就应该在段前写入 <p>   因此 格式化文档 就是在文档注释中添加相应的 HTML 标识   文档注释的正文并不是直接复制到输出文件 (文档的 HTML 文件) 而是读取每一行后 删掉前导的 * 号及 * 号以前的空格 再输入到文档的 如  /**  * This is first line <br>  ***** This is second line <br>  This is third line   */   编译输出后的 HTML 源码则是  This is first line <br>  This is second line <br>  This is third line    前导的 * 号允许连续使用多个 其效果和使用一个 * 号一样 但多个 * 号前不能有其它字符分隔 否则分隔符及后面的 * 号都将作为文档的内容 * 号在这里是作为左边界使用 如上例的第一行和第二行 如果没有前导的 * 号 则边界从第一个有效字符开始 而不包括前面的空格 如上例第三行   还有一点需要说明 文档注释只说明紧接其后的类 属性或者方法 如下例   /** ment for class */  public class Test   /** ment for a attribute */  int number;  /** ment for a method */  public void myMethod()        上例中的三处注释就是分别对类 属性和方法的文档注释 它们生成的文档分别是说明紧接其后的类 属性 方法的 紧接 二字尤其重要 如果忽略了这一点 就很可能造成生成的文档错误 如  import java lang *;  /** mnet for class */  public class Test   // 此例为正确的例子  这个文档注释将生成正确的文档 但只需要改变其中两行的位置 变成下例 就会出错   /** mnet for class */  import java lang *;  public class Test   // 此例为错误的例子  这个例子只把上例的 import 语句和文档注释部分交换了位置 结果却大不相同——生成的文档中根本就找不到上述注释的内容了 原因何在?   /** mnet for class */ 是对 class Test 的说明 把它放在 public class Test 之前时 其后紧接着 class Test 符合规则 所以生成的文档正确 但是把它和 import java lang *; 调换了位置后 其后紧接的就是不 class Test 了 而是一个 import 语句 由于文档注释只能说明类 属性和方法 import 语句不在此列 所以这个文档注释就被当作错误说明省略掉了    文档注释的三部分  根据在文档中显示的效果 文档注释分为三部分 先举例如下 以便说明   /**  * show 方法的简述   * <p>show 方法的详细说明第一行<br>  * show 方法的详细说明第二行  * @param b true 表示显示 false 表示隐藏  * @return 没有返回值  */  public void show(boolean b)   frame show(b);     第一部分是简述 文档中 对于属性和方法都是先有一个列表 然后才在后面一个一个的详细的说明 列表中属性名或者方法名后面那段说明就是简述 如下图中被红框框选的部分       简述部分写在一段文档注释的最前面 第一个点号 ( ) 之前 (包括点号) 换句话说 就是用第一个点号分隔文档注释 之前是简述 之后是第二部分和第三部分 如上例中的 * show 方法的简述   有时 即使正确地以一个点号作为分隔 javadoc 仍然会出错 把点号后面的部分也做为了第一部分 为了解决这个问题 我们可以使用一个 <p> 标志将第二分部分开为下一段 如上例的 * <p>show 方法的详细说明第一行 除此之外 我们也可以使用 <br> 来分隔   第二部分是详细说明部分 该部分对属性或者方法进行详细的说明 在格式上没有什么特殊的要求 可以包含若干个点号 它在文档中的位置如下图所示       这部分文档在上例中相应的代码是   * show 方法的简述   * <p>show 方法的详细说明第一行<br>  * show 方法的详细说明第二行  发现什么了?对了 简述也在其中 这一点要记住了 不要画蛇添足——在详细说明部分中再写一次简述哦!  第三部分是特殊说明部分 这部分包括版本说明 参数说明 返回值说明等 它在文档中的位置       第三部分在上例中相应的代码是   * @param b true 表示显示 false 表示隐藏  * @return 没有返回值   除了 @param 和 @return 之外 还有其它的一些特殊标记 分别用于对类 属性和方法的说明……不要推我 我马上就说   三 使用 javadoc 标记  javadoc 标记是插入文档注释中的特殊标记 它们用于标识代码中的特殊引用 javadoc 标记由 @ 及其后所跟的标记类型和专用注释引用组成 记住了 三个部分——@ 标记类型 专用注释引用 不过我宁愿把它分成两部分 @ 和标记类型 专用注释引用 虽然 @ 和 标记类型之间有时可以用空格符分隔 但是我宁愿始终将它们紧挨着写 以减少出错机会   javadoc 标记有如下一些       下面详细说明各标记    @see 的使用  @see 的句法有三种   @see 类名  @see #方法名或属性名  @see 类名#方法名或属性名  类名 可以根据需要只写出类名 (如 String) 或者写出类全名 (如 java lang String) 那么什么时候只需要写出类名 什么时候需要写出类全名呢?  如果 java 源文件中的 import 语句包含了的类 可以只写出类名 如果没有包含 则需要写出类全名 java lang 也已经默认被包含了 这和 javac 编译 java 源文件时的规定一样 所以可以简单的用 javac 编译来判断 源程序中 javac 能找到的类 javadoc 也一定能找到 javac 找不到的类 javadoc 也找不到 这就需要使用类全名了   方法名或者属性名 如果是属性名 则只需要写出属性名即可 如果是方法名 则需要写出方法名以及参数类型 没有参数的方法 需要写出一对括号 如      有时也可以偷懒 假如上例中 没有 count 这一属性 那么参考方法 count() 就可以简写成 @see count 不过 为了安全起见 还是写全 @see count() 比较好   @see 的第二个句法和第三个句法都是转向方法或者属性的参考 它们有什么区别呢?  第二 cha138/Article/program/Java/JSP/201311/19537

相关参考

知识大全 javadoc生成注释(1)

  一Java文档  //注释一行  /**/注释若干行  /***/注释若干行并写入javadoc文档  通常这种注释的多行写法如下  /**  *  *  */  javadocd文档存放目录au

知识大全 javadoc生成注释(2)

  注释块标记  标记的顺序  块标记将采用如下顺序  …    *    *@param(classesinterfacesmethodsandconstructorsonly)    *@retu

知识大全 使用Javadoc标记你需要的信息

使用Javadoc标记你需要的信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java本身附

知识大全 使用javascript过滤html的字符串(注释标记法)

本篇文章是对使用javascript过滤的字符串进行了详细的分析介绍需要的朋友参考下 复制代码代码如下:cha138/Article/program/Java/JSP/201311

知识大全 API文件产生器-javadoc.exe

API文件产生器-javadoc.exe  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 分析用Javadoc形式集成文档的利与弊

分析用Javadoc形式集成文档的利与弊  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 Java注释的使用和定义

Java元数据总结:Java注释的使用和定义  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  元数

知识大全 现在企业流行的java框架技术

  我将简短分析被用于支持这些框架的企业开发环境或工具箱例如BorlandJBuilderEclipse以及BEAWorkbench请记住市场上有许多有关这些开发框架的图书;然而在任何一篇文章中要对它

怎么避免地板质量在技术参数上做文章?

选购地板时,消费者往往会特别关注三个技术参数:耐磨转数、吸水率、甲醛释放量。为了吸引消费者的眼球,许多厂家也就在这几个数据上大做文章,一家比一家标准高,当然,价钱也跟着水涨船高。事实上,单看技术参数并

知识大全 以前在豆瓣上看过一篇文章。以日记的形式写的。关于xing爱。求那文章。

以前在豆瓣上看过一篇文章。以日记的形式写的。关于xing爱。求那文章。。太广泛了,范围太大,关键词太少,不好定位啊求~~~我以前在《青年文摘》上看过的一篇文章是《完美男人手册》吗?o(∩_∩)o有点害