Java基础学习总结(36)——Java注释模板
代码注释是对代码设计者、代码阅读者以及系统间调用提供了有效的帮助,最大限度的提高团队开发合作效率增强系统的可维护性。我们追求简化,不是为了写注释而写注释。
(快速使用请直接看六、七、八)
一、原则:
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注释模板的更多相关文章
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
- java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)
最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...
- Java基础学习笔记一 Java介绍
java语言概述 Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的. Java的应用 开发QQ.迅雷程序(桌面应用软件) 淘宝.京东(互联网应用软件) 安 ...
- Java基础学习笔记十 Java基础语法之final、static、匿名对象、内部类
final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...
- JAVA基础学习——1.0 Java概述
Java语言 SUN公司 1995年推出的高级编程语言 ■ 主要应用方向 Web开发和Android开发 ■ 主要特点 平台无关性:能运行于不同的平台上 安全性:去掉了指针操作,内存由操作 ...
- Java基础学习总结(50)——Java事务处理总结
一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isol ...
- Java基础学习笔记二 Java基础语法
注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /* 这是 * 一段注释, * 它跨越了多个行 */ public vo ...
- Java基础学习笔记五 Java基础语法之面向对象
面向对象 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式.面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.例如:公司打扫卫生( ...
- Java基础学习笔记七 Java基础语法之继承和抽象类
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...
- Java基础学习笔记八 Java基础语法之接口和多态
接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...
随机推荐
- Jsp内置对象和EL隐藏(内置)对象
JSP中的内置对象一共有九个, 由于有的不太常用, 所以总是记不住, 从Sun公司的网站上找到的PDF文档, 把这一部分放在这里, 以备随时查用: JSP九个内置对象: Implicit ...
- 数据库登陆失败原因: 未与信任 SQL Server 连接相关联
解决方案:用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接相关联. 问题简述: 用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接相关联. 说明: 执行当前 ...
- PCB genesis孔符制作实现方法
一.先看genesis原始孔符 孔符的作用:用于表示孔径的大小的一种代号, 当孔径检测时,可以按分孔图中的孔符对应的孔径尺寸对孔径检测. 在实际PCB行业通常不使用原始(图形)孔符,而使用字母孔符(如 ...
- bzoj1877 晨跑(费用流)
1877: [SDOI2009]晨跑 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 2138 Solved: 1145 Description Elax ...
- BZOJ 4173 数论
思路: $(m%k+n%k>=k) *phi(k)$ $我们不妨设n=q_1k+r_1 m=q_2k+r$2 $n+m=(q_1+q_2)k+r1+r2$ ${\lfloor}\frac{n+m ...
- linux命令(006) -- w
w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令.执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序.单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户 ...
- 参加2016华为codecraft编程精英挑战赛后感
2016年4月参加了华为的软件比赛. 关于比赛:给了一道图论的np-hard问题.刚开始完全不知道怎么入手,请教过师兄,自己也琢磨过,没有什么万全的解决方法.注意,这里说的是万全的办法.本科搞算法时候 ...
- EF 新增数据时提示it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element
it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionM ...
- Contact
UF3000: 1.wafer进去prober后,默认probercard不会跟chuck上的wafer接触. 2.通过prober界面上的按钮向上移动,使得prober card和wafer的距离为 ...
- JS高级——Function
Function构造函数 可以用来新建函数对象 1.一个参数都不传的情况创建的就是一个空的函数 2.只传一个参数的情况这个参数就是函数体 3.传多个参数的情况,最后一个参数为函数体,前面的参数都是该函 ...