代码注释是对代码设计者、代码阅读者以及系统间调用提供了有效的帮助,最大限度的提高团队开发合作效率增强系统的可维护性。我们追求简化,不是为了写注释而写注释。

(快速使用请直接看六、七、八)

一、原则:

1.注释形式统一

使用统一的注释风格,不要随意创建新的注释风格。

2.注释准确简洁

内容要简单、明了,防止注释的多义性,错误的注释不但无益反而有害。

二、注释条件:

1.基本注释(必须加)

a)类(接口)的注释

b)构造函数的注释

c)方法的注释

d)全局变量的注释

e)字段/属性的注释

注:Bean对象的getter、setter方法不需加注释。

2.局部注释(必须加)

a)典型算法必须有注释。

b)在代码不明晰处必须有注释。

c)在代码修改处加上修改标识的注释。

d)在循环和逻辑分支组成的代码中加注释。

e)为他人提供的接口必须加详细注释。

三、注释格式:

1.单行(single-line)注释:“//……”

2.块(block)注释:“/*……*/”

3.文档注释:“/**……*/”

四、javadoc 注释标签语法

@author对类的说明标明开发该类模块的作者

@version对类的说明标明该类模块的版本

@see对类、属性、方法的说明参考转向,也就是相关主题

@param对方法的说明对方法中某参数的说明

@return对方法的说明对方法返回值的说明

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

五、注释:

1.类(接口)注释

/**

* @ClassName: Test

* @Description:TODO(这里用一句话描述这个类的作用)

* @authorjarek

日下午2:25:41

* @Copyright ? 2015上海通善互联网金融信息服务有限公司

*/

publicclass Testextends TextMessageSender {

.....

}

2.构造方法注释

/**

* (这里用一句话描述这个构造函数的作用)

*

*/

public Test() {

super();

// TODO Auto-generated constructor stub

}

/**

* (这里用一句话描述这个构造函数的作用)

*

* @param userId

* @param userName

*/

public Test(StringuserId, String
userName) {

super();

this.userId =userId;

this.userName =userName;

}

3.方法注释

/**

* @method checkUser(这里用一句话描述这个方法的作用)

* @return boolean

* @authorjarek

日下午3:26:33

*/

publicboolean checkUser(StringuserId)
throws Exception {

returntrue;

}

4.全局变量注释

/** 公司代码 */

privatefinal Stringcompay =
"ts";

5.字段/属性注释

// 用户ID

private StringuserId;

// 用户名称

private StringuserName;

6.局部注释

publicstaticvoidensureQueueExists(SQSConnectionconnection, String
queueName)throwsJMSException {

AmazonSQSMessagingClientWrapper
client = connection.getWrappedAmazonSQSClient();

/**

* 检测队列是否存在,不存在则创建

*/

if( !client.queueExists(queueName) ) {

client.createQueue(queueName );

}

}

......

六、代码修改注释

注释格式如下:

修改人,修改时间,UC编码,迭代编码修改说明(原因、内容)可以单行简短注释

如:

日上午11:36:18
@UC_XXXX @In 变更说明(原因、修改内容)

代码改动量小时,在修改代码行前追加注释

对于改动量大时,可以在方法前追加注释

对整个java类变化大时,可以重新追加类注释

七、导入模版(模版文件见文档附件)

<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment"
name="methodcomment">/**@method ${enclosing_method}(这里用一句话描述这个方法的作用)

 * @return ${return_type}

 * @author ${user}

 * @date ${date} ${time}

*/</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**@ClassName: ${type_name}

 * @Description: TODO(这里用一句话描述这个类的作用)

 * @author ${user}

 * @date ${date} ${time}

 * @Copyright © ${year}上海通善互联网金融信息服务有限公司

 */</template><template autoinsert="false" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**(这里用一句话描述这个构造函数的作用)

 * ${tags}

 */</template><template autoinsert="false" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**

 * ${bare_field_name}

 *

 * @return  the ${bare_field_name}

 * @since   1.0.0

*/

</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**

 * ${tags}

 * ${see_to_target}

 */</template><template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/** (这里用一句话描述这个方法的作用)

 * ${see_to_overridden}

 */</template><template autoinsert="false" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**

 * ${field}:${todo}(用一句话描述这个变量表示什么)

 *

 * @since 1.0.0

 */

</template><template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment"/><template autoinsert="true" context="settercomment_context"
deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**

 * @param ${param} the ${bare_field_name} to set

 */</template></templates>

<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="java" deleted="false" description="代码变更注释模版" enabled="true" name="mc">//${user} ${date} ${time}  @UC_XXXX @In 变更说明(原因、修改内容)</template></templates>

八、使用:

只要导入在eclips中导入注释模版即可

通过 /** +回车或 mc +alt+/ 会调出所有模版,提供方便快速注释的功能。

Java基础学习总结(36)——Java注释模板的更多相关文章

  1. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  2. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...

  3. Java基础学习笔记一 Java介绍

    java语言概述 Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的. Java的应用 开发QQ.迅雷程序(桌面应用软件) 淘宝.京东(互联网应用软件) 安 ...

  4. Java基础学习笔记十 Java基础语法之final、static、匿名对象、内部类

    final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...

  5. JAVA基础学习——1.0 Java概述

    Java语言 SUN公司  1995年推出的高级编程语言 ■  主要应用方向 Web开发和Android开发 ■  主要特点 平台无关性:能运行于不同的平台上    安全性:去掉了指针操作,内存由操作 ...

  6. Java基础学习总结(50)——Java事务处理总结

    一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isol ...

  7. Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /* 这是 * 一段注释, * 它跨越了多个行 */ public vo ...

  8. Java基础学习笔记五 Java基础语法之面向对象

    面向对象 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式.面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.例如:公司打扫卫生( ...

  9. Java基础学习笔记七 Java基础语法之继承和抽象类

    继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...

  10. Java基础学习笔记八 Java基础语法之接口和多态

    接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...

随机推荐

  1. JavaScript Patterns 2.5 (Not) Augmenting Build-in Prototypes

    Disadvantage Other developers using your code will probably expect the built-in JavaScript methods t ...

  2. PCB genesis短槽加引导孔实现方法

    一.何为短槽 短槽通常定义:槽长小于2倍槽宽      如:槽长1.8mm,槽宽1.0mm 二.为什么要加短槽加引孔呢 短槽孔在钻孔时孔易偏斜导致槽长偏短, 当槽长宽比越小,则受力越不均匀,在钻第2个 ...

  3. Python/Django 下载Excel2003

    一.安装 目前支持Excel2003的第三方库多少还有几个,本文使用的是xlwt,安装方式命令行:pip install xlwt 二.使用 首先.引入该库,例如:from xlwt import * ...

  4. 【转】MySQL存储引擎中的MyISAM和InnoDB区别详解

    转自:http://www.jb51.net/article/62457.htm MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Ac ...

  5. ActiveMQ 5.10.0 安装与配置

    先在官网下载activeMQ,我这里是5.10.0. 然后在解压在一个文件夹下即可. 我这里是:D:\apache-activemq-5.10.0-bin 然后进入bin目录:D:\apache-ac ...

  6. 2 我们的C#学习方法

    在这里我们借鉴了一种行之有效的学习编程语言的方法,并在此基础上进行了相应的改良.我们在培训新人中使用后,发现这种学习方法是非常有效的. 你通过做以下几个步骤来一步步学习C#语言. 1. 搞懂每一个我们 ...

  7. jq-文本框只能输入数字

    <input type="text" onKeyUp="value=value.replace(/\D/g,'')"  /> onKeyUp: 当输 ...

  8. Java系列学习(八)-继承

    1.代码块 (1)在java中,使用 { } 括起来的代码 被称为代码块 (2)分类: A:局部代码块 [局部位置] [作用:用于限定 变量的生命周期] B:构造代码块 [在类中的成员位置,用{}括起 ...

  9. 检查阿里云ssl证书到期情况

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-06-10 16:00 # @Author : Anthony.long # ...

  10. Android常用的Dialog对话框用法

    Android的版本有很多通常开发的时候对话框大多数使用自定义或是 Google提供的V4, V7 兼容包来开发保持各个版本的对话框样式统一,所以这里使用的是V7 包里的AlertDialog. im ...