一. Java注释分类
// 注释一行 
/* ...... */ 注释若干行 
/** ...... */ 注释若干行,并写入 javadoc 文档 
通常这种注释的多行写法如下: 
/** 
* ......... 
* ......... 
*/

javadoc -d 文档存放目录 -author -version 源文件名.java 
这条命令编译一个名为 “源文件名.java”的 java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中 index.html 就是文档的首页。-author 和 -version 两个选项可以省略。

二. 文档注释的格式 
1. 文档和文档注释的格式化 
生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。 
比如,需要换行时,不是敲入一个回车符,而是写入 <br>,如果要分段,就应该在段前写入 <p>。 
文档注释的正文并不是直接复制到输出文件 (文档的 HTML 文件),而是读取每一行后,删掉前导的 * 号及 * 号以前的空格,再输入到文档的。如 
/** 
* This is first line. <br> 
***** This is second line. <br> 
This is third line. 
*/ 
2. 文档注释的三部分 
先举例如下 
/** 
* show 方法的简述. 
* <p>show 方法的详细说明第一行<br> 
* show 方法的详细说明第二行 
* @param b true 表示显示,false 表示隐藏 
* @return 没有返回值 
*/ 
public void show(boolean b) { 
frame.show(b); 

第一部分是简述。文档中,对于属性和方法都是先有一个列表,然后才在后面一个一个的详细的说明 
简述部分写在一段文档注释的最前面,第一个点号 (.) 之前 (包括点号)。换句话说,就是用第一个点号分隔文档注释,之前是简述,之后是第二部分和第三部分。 
第二部分是详细说明部分。该部分对属性或者方法进行详细的说明,在格式上没有什么特殊的要求,可以包含若干个点号。,简述也在其中。这一点要记住了 
* show 方法的简述. 
* <p>show 方法的详细说明第一行<br> 
* show 方法的详细说明第二行 
第三部分是特殊说明部分。这部分包括版本说明、参数说明、返回值等说明。 
* @param b true 表示显示,false 表示隐藏 
* @return 没有返回值

三. 使用 javadoc 标记 
javadoc 标记由“@+标记类型"和专用注释引用组成 
javadoc 标记有如下一些: 
@author 标明开发该类模块的作者 
@version 标明该类模块的版本 
@see 参考转向,也就是相关主题 
@param 对方法中某参数的说明 
@return 对方法返回值的说明 

@exception 对方法可能抛出的异常进行说明

其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号 (,) 隔开。@version 也可以使用多次,只有第一次有效 

使用 @param、@return 和 @exception 这三个标记只用于方法,@param 描述方法的参数,@return 描述方法的返回值,@exception 描述方法可能抛出的异常。它们的句法如下:

@param 参数名 参数说明 
@return 返回值说明 
@exception 异常类名 说明

四. javadoc 命令 
用法: javadoc [options] [packagenames] [sourcefiles]
选项: 
-public 仅显示 public 类和成员 
-protected 显示 protected/public 类和成员 (缺省) 
-package 显示 package/protected/public 类和成员 
-private 显示所有类和成员 
-d <directory> 输出文件的目标目录 
-version 包含 @version 段 
-author 包含 @author 段 
-splitindex 将索引分为每个字母对应一个文件 
-windowtitle <text> 文档的浏览器窗口标题 
javadoc 编译文档时可以给定包列表,也可以给出源程序文件列表。例如在 CLASSPATH 下有两个包若干类如下: 
  fancy.Editor 
  fancy.Test 
  fancy.editor.ECommand 
  fancy.editor.EDocument 
  fancy.editor.EView 
可以直接编译类: javadoc fancy\Test.java fancy\Editor.java fancy\editor\ECommand.java fancy\editor\EDocument.java fancy\editor\EView.java 
也可以是给出包名作为编译参数,如:javadoc fancy fancy.editor 

可以自己看看这两种方法的区别,到此为止javadoc就简单介绍完了,想要用好她还是要多用,多参考标准java代码

Java代码规范 
--注释 
@author LEI 
@version 1.10 2005-09-01 

1 注释文档的格式

注释文档将用来生成HTML格式的代码报告,所以注释文档必须书写在类、域、构造函数、方法、定义之前。注释文档由两部分组成——描述、块标记。

例如: 
/** 
* The doGet method of the servlet. 
* This method is called when a form has its tag value method equals to get. 

* @param request 
* the request send by the client to the server 
* @param response 
* the response send by the server to the client 
* @throws ServletException 
* if an error occurred 
* @throws IOException 
* if an error occurred 
*/ 
public void doGet (HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
doPost(request, response); 

前两行为描述,描述完毕后,由@符号起头为块标记注视。 
2 注释的种类 
2.1 文件头注释 
文件头注释以 /*开始,以*/结束,需要注明该文件创建时间,文件名,命名空间信息。 
例如: 
/* 
* Created on 2005-7-2 
* / 
2.2 类、接口注释 
类、接口的注释采用 /** … */,描述部分用来书写该类的作用或者相关信息,块标记部分必须注明作者和版本。 
例如: 
/**Title: XXXX DRIVER 3.0 
*Description: XXXX DRIVER 3.0 
*Copyright: Copyright (c) 2003 
*Company:XXXX有限公司 
* @author Java Development Group 
* @version 3.0 
*/ 
例如: 
/** 
* A class representing a window on the screen. 
* For example: 

* Window win = new Window(parent); 
* win.show(); 


* @author Sami Shaio 
* @version %I%, %G% 
* @see java.awt.BaseWindow 
* @see java.awt.Button 
*/

class Window extends BaseWindow {

...


2.3 构造函数注释 
构造函数注释采用 /** … */,描述部分注明构造函数的作用,不一定有块标记部分。 
例如: 
/** 
* 默认构造函数 
*/ 
有例如: 
/** 
* 带参数构造函数,初始化模式名,名称和数据源类型 

* @param schema 
* Ref 模式名 
* @param name 
* Ref 名称 
* @param type 
* byVal 数据源类型 
*/ 
2.4 域注释 
域注释可以出现在注释文档里面,也可以不出现在注释文档里面。用/** … */的域注释将会被认为是注释文档热出现在最终生成的HTML报告里面,而使用/* … */的注释会被忽略。 
例如: 
/* 由于triger和表用一个DMSource,所以要区分和表的迁移成功标记 */ 
boolean isTrigerSuccess = false; 
又例如: 
/** 由于triger和表用一个DMSource,所以要区分和表的迁移成功标记 */ 
boolean isTrigerSuccess = false; 
再例如: 
/** 
* The X-coordinate of the component. 

* @see #getLocation() 
*/ 
int x = 1263732; 
2.5 方法注释 
方法注释采用 /** … */,描述部分注明方法的功能,块标记部分注明方法的参数,返回值,异常等信息。例如: 
/** 
* 设置是否有外码约束 

* @param conn 
* Connection 与数据库的连接 
*/ 
2.6 定义注释 
规则同域注释。 
3 注释块标记 
3.1 标记的顺序 
块标记将采用如下顺序: 
… 

* @param (classes, interfaces, methods and constructors only) 
* @return (methods only) 
* @exception (@throws is a synonym added in Javadoc 1.2) 
* @author (classes and interfaces only, required) 
* @version (classes and interfaces only, required. See footnote 1) 
* @see 
* @since 
* @serial (or @serialField or @serialData) 
* @deprecated (see How and When To Deprecate APIs) 
* … 
一个块标记可以根据需要重复出现多次,多次出现的标记按照如下顺序: 
@author 按照时间先后顺序(chronological) 
@param 按照参数定义顺序(declaration) 
@throws 按照异常名字的字母顺序(alphabetically) 
@see 按照如下顺序: 
@see #field 
@see #Constructor(Type, Type...) 
@see #Constructor(Type id, Type id...) 
@see #method(Type, Type,...) 
@see #method(Type id, Type, id...) 
@see Class 
@see Class#field 
@see Class#Constructor(Type, Type...) 
@see Class#Constructor(Type id, Type id) 
@see Class#method(Type, Type,...) 
@see Class#method(Type id, Type id,...) 
@see package.Class 
@see package.Class#field 
@see package.Class#Constructor(Type, Type...) 
@see package.Class#Constructor(Type id, Type id) 
@see package.Class#method(Type, Type,...) 
@see package.Class#method(Type id, Type, id) 
@see package 
3.2 标记介绍 
3.2.1 @param标记 
@param后面空格后跟着参数的变量名字(不是类型),空格后跟着对该参数的描述。 
在描述中第一个名字为该变量的数据类型,表示数据类型的名次前面可以有一个冠词如:a,an,the。如果是int类型的参数则不需要注明数据类型。例如: 
* @param ch the char 用用来…… 
* @param _image the image 用来…… 
* @param _num 一个数字……

对于参数的描述如果只是一短语,最好不要首字母大写,结尾也不要句号。 
对于参数的描述是一个句子,最好不要首字母大写,如果出现了句号这说明你的描述不止一句话。如果非要首字母大写的话,必须用句号来结束句子。(英文的句号) 
公司内部添加ByRef和ByVal两个标记,例如: 
* @param _image the image ByRef 用来…… 
说明该参数是引用传递(指针),ByVal可以省略,表示是值传递。 
3.2.2 @return标记 
返回为空(void)的构造函数或者函数,@return可以省略。 
如果返回值就是输入参数,必须用与输入参数的@param相同的描述信息。 
必要的时候注明特殊条件写的返回值。 
3.2.3 @throws 标记 
@throws以前使用的是@exception。 
@throws的内容必须在函数的throws部分定义。 
3.2.4 @author标记 
类注释标记。 
函数注释里面可以不出现@author。 
3.2.5 @version 
类注释标记。 
函数注释里面可以不出现@version 
3.2.6 @since 
类注释标记。 
标明该类可以运行的JDK版本 
例如: 
@since JDK1.2 
3.2.7 @deprecated 
由于某种原因而被宣布将要被废弃的方法。 
/** 
* @deprecated As of JDK 1.1, replaced by 
* setBounds 
* @see #setBounds(int,int,int,int) 
*/ 
3.2.8 @link标记 
语法:{@link package.class#member label} 
Label为链接文字。 
package.class#member将被自动转换成指向package.class的member文件的URL。 
4 HTML代码的使用 
在注释描述部分可以使用HTML代码。 
表示段落 
* …. 
表示自动标号

java注释详解--javadoc注释的更多相关文章

  1. JScript中的条件注释详解(转载自网络)

    JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...

  2. Java Annotation详解 理解和使用Annotation

    系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...

  3. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  4. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

  5. Java IO 详解

    Java IO 详解 初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正, ...

  6. java关键字(详解)

    目录 1. 基本类型 1) boolean 布尔型 2) byte 字节型 3) char 字符型 4) double 双精度 5) float 浮点 6) int 整型 7) long 长整型 8) ...

  7. Java内部类详解 2

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  8. Java泛型详解(转)

    文章转自  importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理 ...

  9. 【Java_基础】Java内部类详解

    1.四种内部类 java中的四种内部类:成员内部类.静态内部类.局部内部类和匿名内部类.其中匿名内部类用到的最多. 1.1.成员内部类 若一个类定义在另一个类的内部作为实例成员,我们把这个作为实例成员 ...

随机推荐

  1. freemarker获取变量的范围的问题

    今天做freemarker的时候,想用一下全局的变量.就是在a.ftl 和 b.ftl页面里面,使用a.action里面放入request的变量.a.action的视图页面是a.ftl ,b.ftl是 ...

  2. Sql里时间加减

    简单的时间加减 DATEADD(dd,-30, GETDATE())) 使用DateADD方法: 参数1:间隔,表示要添加的时间间隔,一天还是一月还是一年 参数2:要加或减的个数,加一年或加一月 参数 ...

  3. MD5签名

    /// <summary>        /// 校验签名        /// </summary>        /// <param name="mode ...

  4. Android 为 TextView 添加超链接 (网址,邮件,电话)

    <string name="info">Cette application a été développée par <a href="http://w ...

  5. FFMPEG 的学习

    https://blog.csdn.net/leixiaohua1020/article/details/15811977/

  6. PHP中count()和sizeof()

    php中获取数组长度函数有两个count()和sizeof(),如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0.两函数功能一样,手册上讲,sizeof() ...

  7. 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚

    首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...

  8. jquery 通过attr获取属性只有一个值的解决

    var a = []; $($('select.list[data-target="' + target + '"]').find("option:selected&qu ...

  9. mysql 查看索引

    查看索引 mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称. · Non_unique ...

  10. spring管理hibernate session的问题探究

    我们再用spring管理hibernate的时候, 我们会继承HibernateDaoSupport 或者HibernateTemplate类. 我们不知道这两个类之间有什么关系. 也没有去关闭ses ...