最近在做java项目开始关注和注意一些java规范,目的只是为了让自己和别人更容易理解自己写的代码和复用。

  一个重要的原则就是:问你自己,你如果从来没有见过这段代码,你要快速地知道这段代码是干什么的,你需要一些什么信息?

  单行注释和块注释(多行)这些书本和学习的时候都会知道就不在这写了,主要写一个文档注释,其实这个可以参考java的API文档,java的API文档也是按一定规范写的注释!

  javadoc注释标签语法 (不太熟时,其实可以使用格式化代码功能,让IDE自动帮助排版,Eclipse类软件的快捷键是: Ctrl+Shift+F)

    @author    对类的说明标明开发该类模块的作者
    @version 对类的说明标明该类模块的版本
    @see 对类、属性、方法的说明 参考转向,也就是相关主题
    @param 对方法的说明对方法中某参数的说明
    @return 对方法的说明对方法返回值的说明
    @exception 对方法的说明对方法可能抛出的异常进行说明

  在myEclipse中设置默认生成的注释:

    

1. 源文件注释
  源文件注释采用 /** …… */,在每个源文件的头部要有必要的注释信息,包括:文件名;文件编号;版本号;作者;创建时间;文件描述包括本文件历史修改记录等。

  中文注释模版:
  

  /**
  * 文件名 :
* CopyRright (c) 2016-xxxx:
  * 文件编号:
  * 创建人:
  * 日期:
  * 修改人:
  * 日期:
  * 描述:
  * 版本号:
  */

2. 类(模块)注释:
  类(模块)注释采用 /** ……
*/,在每个类的头部要有必要的注释信息,包括:工程名;类编号;命名空间;类可以运行的JDK版本;版本号;作者;创建时间;类功能描述(如功能、主要算法、内部各部分之间的关系、该类与其类的关系等,必要时还要有一些如特别的软硬件要求等说明);主要函数或过程清单及本类历史修改记录等。

  英文注释模版:

     /**
    * CopyRright (c)2016-xxxx: <展望软件Forsoft >
    * Project: <项目工程名 >
    * Module ID: <(模块)类编号,可以引用系统设计中的类编号>
  * Comments: <对此类的描述,可以引用系统设计中的描述>
    * JDK version used: <JDK1.6>
    * Namespace: <命名空间>
    * Author: <作者中文名或拼音缩写>
    * Create Date: <创建日期,格式:YYYY-MM-DD>
    * Modified By: <修改人中文名或拼音缩写>
    * Modified Date: <修改日期,格式:YYYY-MM-DD>
   * Why & What is modified <修改原因描述>
    * Version: <版本号>
    */

3. 接口注释:
  接口注释采用 /** …… */,在满足类注释的基础之上,接口注释应该包含描述接口的目的、它应如何被使用以及如何不被使用,块标记部分必须注明作者和版本。在接口注释清楚的前提下对应的实现类可以不加注释。

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

  注释模版一:

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

  注释模版二:

      /**
    * Description : 带参数构造函数,
    * 初始化模式名,名称和数据源类型
    * @param schema: 模式名
    * @param name: 名称
    * @param type: 数据源类型
    */

5. 函数注释:
  函数注释采用 /** ……*/,在每个函数或者过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等。函数注释里面可以不出现版本号(@version)。

  注释模版一:

        /**
    * 函 数 名 :
    * 功能描述:
    * 输入参数: <按照参数定义顺序>
    * <@param后面空格后跟着参数的变量名字
    * (不是类型),空格后跟着对该参数的描述。>
    * 返 回 值: - 类型 <说明>
    * <返回为空(void)的构造函数或者函数,
    * @return 可以省略; 如果返回值就是输入参数,必须用与输入参数的
    * @param 相同的描述信息; 必要的时候注明特殊条件写的返回值。
    * 异常:<按照异常名字的字母顺序>
    * 创建人:
    * 日期:
    * 修改人:
    * 日期:
    */

  注释模版二:

         /**
     * FunName: getFirstSpell
    * Description : 获取汉字拼音首字母的字符串,
    * @param: str the String是包含汉字的字符串
    * @return String:汉字返回拼音首字母字符串;
     * @Author: Sky
     * @Create Date: 2016-07-21
     */

6. 方法注释:
  方法注释采用 /** …… */,对于设置 (Set 方法 ) 与获取 (Get 方法 )
成员的方法,在成员变量已有说明的情况下,可以不加注释;普通成员方法要求说明完成什么功能,参数含义是什么且返回值什么;另外方法的创建时间必须注释清楚,为将来的维护和阅读提供宝贵线索。

  方法内部注释: 控制结构,代码做了些什么以及为什么这样做,处理顺序等,特别是复杂的逻辑处理部分,要尽可能的给出详细的注释。

7. 其他注释

  全局变量注释:
    要有较详细的注释,包括对其功能、取值范围、哪些函数或者过程存取以及存取时注意事项等的说明。

  局部(中间)变量注释:

    主要变量必须有注释,无特别意义的情况下可以不加注释。

  实参/参数注释:

    参数含义、及其它任何约束或前提条件。

  字段/属性注释:

    字段描述,属性说明。

  常量:

    常量通常具有一定的实际意义,要定义相应说明。

java的注释的更多相关文章

  1. java代码注释规范

    java代码注释规范   代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率.也是程序代码可维护性的重要环节之一.所以我们不是为写注释而写注释.下面说一下我们在诉求网二 ...

  2. [转]java代码注释规范

    代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率.也是程序代码可维护性的重要环节之一.所以我们不是为写注释而写注释.下面说一下我们在诉求网二期开发中使用的代码注释规范 ...

  3. java基础 (记事本编写hello world,path,classpath,java的注释符)

    一:java的基本信息 jre 是指java运行环境,jdk 是指 java 开发工具集(并且里面是自带有jre运行环境的) jvm是指java的虚拟机 java的源代码的后缀名是 .java (例如 ...

  4. Java的注释和Javadoc在eclipse生成的方法 – Break易站

    本文内容来自:Java的注释和Javadoc在eclipse生成的方法 – Break易站 1.  Java的注释 Java里有两种注释风格.下面这个写法是非常常见的 1 2 3 4 /*This i ...

  5. eclipse中添加Java代码注释模板

    eclipse中添加Java代码注释模板 1.Window->Preference->Java->Code Style->Code Template,进入注释编辑界面 2.文件 ...

  6. c语言小程序以及java生成注释文档方法

    c语言小程序:sizeof和strlen() sizeof运算符以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串的长度,字符和字节不是一回事. char类型用于存储字母和标点符号 ...

  7. 列举两种不同类型的Java标识注释,并解释它们之间的区别。

    列举两种不同类型的Java标识注释,并解释它们之间的区别.

  8. 解决eclipse中java代码注释变成乱码的问题

    Eclipse JAVA文件注释乱码将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码 ...

  9. 问题009:java当中的关键字有哪些?在Editplus文本编辑软件中是什么颜色的?java当中的标识符有什么要求?Java中注释分为几类?

    (1) public 公共的,表示访问的权限 (2) private 私有的,表示一种访问权限 (3) class 类关键字,表示定义一个类 java中的关键字都是大写的还是小写的?小写的,在Edit ...

  10. Java中注释的使用

    Java 中注释有三种类型:单行注释.多行注释.文档注释 我们可以通过 javadoc 命令从文档注释(/**aa*/)中提取内容,生成程序的 API 帮助文档. 打开首页,查看下生成的 API 文档 ...

随机推荐

  1. webpack资料

    https://zhuanlan.zhihu.com/p/20367175?columnSlug=FrontendMagazine http://www.cnblogs.com/tugenhua070 ...

  2. sqlserver中Profiler的使用

    1.单击开始--程序--Microsoft SQL Server 2008--性能工具--SQL Server Profiler,如下图:                  2.然后进入SqlServ ...

  3. Extjs4 中在指定光标处插入值

    var rulearea = Ext.getCmp(文本域Id); var rulevalue = rulearea.getValue();// 获取文本textarea 里面的值 var start ...

  4. 输入一个单向链表,输出该链表中倒数第K个结点

    输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...

  5. where T:class 泛型类型约束

    对于一个定义泛型类型为参数的函数,如果调用时传入的对象为T对象或者为T的子类,在函数体内部如果需要使用T的属性的方法时,我们可以给这个泛型增加约束: 类的定义 public class Product ...

  6. 【数学】HDU 5753 Permutation Bo

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5753 题目大意: 两个序列h和c,h为1~n的乱序.h[0]=h[n+1]=0,[A]表示A为真则为 ...

  7. fstream的用法

    本文转载自 http://www.newxing.com/Tech/Program/Cpp/577.html   C++文件流:fstream // 文件流ifstream  // 输入文件流ofst ...

  8. Assertions

    JUnit提供了许多重载的断言方法,这些方法均可以通过"import static org.junit.Assert.*"导入.方法的参数顺序一般都是([失败时打印的字符串消息], ...

  9. B - Dining - poj 3281(最大流)

    题目大意:有一群牛,还有一些牛喜欢的食物和喜欢的饮料,不过这些牛都很特别,他们不会与别的牛吃同一种食物或者饮料,现在约翰拿了一些食物和饮料,同时他也知道这些牛喜欢的食物和饮料的种类,求出来最多能让多少 ...

  10. UIAlertController 的使用——NS_CLASS_AVAILABLE_IOS(8_0)

    UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...