Java注释规范

java注释规范说明

1、 注释形式统一
在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其他项目组发现他们的注释规范与这份文档不同,按照他们的规范写代码,不要试图在既成的规范系统中引入新的规范。
2、 注释的简洁
内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。
3、 注释的一致性
在写代码之前或者边写代码边写注释,因为以后很可能没有时间来这样做。另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。通常描述性注释先于代码创建,解释性注释在开发过程中创建,提示性注释在代码完成之后创建。修改代码的同时修改相应的注释,以保证代码与注释的同步。
4、 注释的位置
保证注释与其描述的代码相邻,即注释的就近原则。对代码的注释应放在其上方相邻或右方的位置,不可放在下方。避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释要对齐。
5、 注释的数量
注释必不可少,但也不应过多,在实际的代码规范中,要求注释占程序代码的比例达到20%左右。注释是对代码的“提示”,而不是文档,程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱,注释的花样要少。不要被动的为写注释而写注释。
6、删除无用注释
在代码交付或部署发布之前,必须删掉临时的或无关的注释,以避免在日后的维护工作中产生混乱。
7、 复杂的注释
如果需要用注释来解释复杂的代码,请检查此代码以确定是否应该重写它。尽一切可能不注释难以理解的代码,而应该重写它。尽管一般不应该为了使代码更简单便于使用而牺牲性能,但必须保持性能和可维护性之间的平衡。
8、 多余的注释
描述程序功能和程序各组成部分相互关系的高级注释是最有用的,而逐行解释程序如何工作的低级注释则不利于读、写和修改,是不必要的,也是难以维护的。避免每行代码都使用注释。如果代码本来就是清楚、一目了然的则不加注释,避免多余的或不适当的注释出现。
9、必加的注释
典型算法必须有注释。在代码不明晰或不可移植处必须有注释。在代码修改处加上修改标识的注释。在循环和逻辑分支组成的代码中添加注释。为了防止问题反复出现,对错误修复和解决方法的代码使用注释,尤其是在团队环境中。
10、注释在编译代码时会被忽略,不编译到最后的可执行文件中,所以注释不
会增加可执行文件的大小。

例子

1. 文件头注释

文件头注释以/*开始,以*/结束,需要注明该文件的创建时间、文件名、命名空间信息。例如:
/* Created on 2017-01-17
     * File Test.java
     * Package com.june.pudo.bs
     * Create Date:2017-01-17
     */

2. 类、接口注释

类、接口的注释采用/**...*/,描述部分用来书写该类的作用或者相关信息,块标记部分必须注明作者个版本。注释代码示例如下:
/** Title:XXXX DRIVER 3.0
     * Description:XXXX DRIVER 3.0
     * Copyright:Copyright(c) 2017
     * Company:XXXX 有限公司
     * 
     * @author June
     * @version 3.0
     */

如下示例也很常见:

/**
     * A class representing a window on the screen
     * For example:
     *
     * Window win = new Window(parent); 
     * win.show();
     *
     * @author June
     * @version %I%,%G%
     * @see java.awt.BaseWindow
     * @see java.awt.Button
     */ class Window extends BaseWindow{
        ...
    }

3. 构造函数注释

构造函数注释采用/**...*/,描述部分注明构造函数的作用,不一定有块标记部分。

无块标记的示例如下:

/**
     * 默认构造函数
     */

带块标记的示例如下:

/**
     * 带参数构造函数,初始化模式名、变量名称和数据源类型
     * @param schema
     * Ref 模式名
     * @param name
     * Ref 变量名称
     * @param type
     * by Val 数据源类型
     */

4. 域注释

域注释可以出现在注释文档里面,也可以不出现在注释文档里面。用/**...*/的域注释将会被认为是注释文档而出现在最终生成的HTML报告里面(Javadoc),而使用/*...*/的注释则会被忽略掉。例如:
/**
     * @作者 XXX
     * @创建时间 Jan 17,2017 16:40:30 AM
     */

上面的注释会生成下面的HTML报告:

@作者 
XXX 
@创建时间 
Jan 17,2017 16:40:30 AM

5. 方法注释

方法注释采用/**...*/,描述部分注明方法的功能,块标记部分注明方法的参数,返回值,异常信息。例如:
/**
     * 设置是否有外码约束
     *
     * @param conn
     *      Connection 与数据库的连接
     */


精彩推荐

Java注释

点击 6970

Java注释规范

点击 6463