Java代码规范——注释

简介:

@from http://hi.baidu.com/%B5%A9%D0%A1%CD%FE/blog/item/93da36517c07e22343a75b74.html

@author LEI

@version 1.10 2005-09-01

注释文档的格式

注释文档将用来生成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.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 一个数字……

对于参数的描述如果只是一短语,最好不要首字母大写,结尾也不要句号。

对于参数的描述是一个句子,最好不要首字母大写,如果出现了句号这说明你的描述不止一句话。如果非要首字母大写的话,必须用句号来结束 句子。(英文的句号)

公司内部添加ByRefByVal两 个标记,例如:

* @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.classmember文 件的URL

4 HTML代码的使用

在注释描述部分可以使用HTML代码。

表示段落

 

表示自动标号



本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/799092,如需转载请自行联系原作者

相关文章
|
14小时前
|
算法 Java 程序员
Java多态:不只是代码,更是思想的碰撞!
【6月更文挑战第17天】Java的多态性展示了编程的哲学,通过抽象基类(如`AudioFile`、`Shape`、`Product`)和重写方法实现。案例中,音乐播放器利用多态统一处理不同音频格式,绘图软件优雅地绘制各种形状,电商系统灵活管理商品信息。多态简化代码,增强可扩展性,连接技术与设计,体现代码的灵活性和艺术性。
|
1天前
|
安全 Java
Java 面向对象之旅:封装——让代码更加“接地气”的秘诀。
【6月更文挑战第16天】**Java面向对象的封装秘籍:**将数据和操作打包成类,如`Student`和`Car`,隐藏内部详情,只通过`get/set`方法交互。封装提升代码清晰度,便于管理和保护安全性,就像整理工具箱,让每个功能一目了然,操作自如。
|
1天前
|
安全 Java 数据安全/隐私保护
一探 Java 封装究竟:为何它让代码更加“高大上”?
【6月更文挑战第16天】Java中的封装如城堡般迷人,它确保数据安全(如`UserInfo`类的私有属性),增强代码结构(如`Order`类的操作封装),并提升复用性与扩展性(如`Shape`类的抽象设计)。封装是打造高质量、易维护代码的关键,让代码既安全又高效。
|
2天前
|
安全 Java
Java 面向对象之旅:在封装的港湾中,找到代码的安宁。
【6月更文挑战第15天】封装是Java面向对象的核心,它保护了类的内部数据,如`Book`和`Student`类中的属性。通过设定私有成员和公共方法,代码更有序,防止直接访问导致的混乱。封装提供了一种控制数据交互的方式,确保安全,如`setGpa()`方法验证输入。这使得代码结构清晰,如同港湾中的船只,井然有序,赋予编程过程美感和安全感。在面向对象的旅程中,封装是我们的庇护所,助力我们构建更美好的程序世界。
|
2天前
|
算法 Java
Java关键字与保留字:如何正确使用,让你的代码“飞”起来!
【6月更文挑战第15天】Java编程中,关键字如"class"、"int"用于特定语法,保留字可能未来成为关键字。理解其含义和用法至关重要,避免用作标识符以防止未来冲突。正确使用如"for"控制循环,优化代码能提升效率,使程序运行更流畅。避免保留字,如"goto"、"const",查阅文档确保合规性。通过代码优化,让程序效率更高,代码飞行在技术的云端。
|
3天前
|
Java 编译器 程序员
【实战攻略】Java高手教你如何灵活运用if-else和switch,提升代码效率!
【6月更文挑战第14天】本文探讨了Java中if-else和switch语句的巧妙运用,通过示例展示了如何提升代码效率和可读性。通过使用Map重构if-else结构,使代码更简洁易维护;利用switch处理枚举类型,实现清晰的代码结构。在性能方面,switch在选项少时占优,而现代JIT编译器优化后的if-else适用于大规模字符串比较。理解并灵活运用这两种控制结构,能助你在Java编程中写出高效、易读的代码。
|
3天前
|
算法 Java 程序员
【程序员必看!】掌握这招if-else,你的Java代码将瞬间高大上!
【6月更文挑战第14天】本文介绍了if-else语句在程序设计中的重要性,通过示例展示其基本语法和复杂用法,如嵌套和else-if链。强调了避免过度嵌套、逻辑运算符的使用、保持一致性及添加注释等提升代码质量的技巧。学习并实践这些技巧,将使你的Java代码更优雅、高效,助你成为编程艺术家。
|
4天前
|
Java
java处理pdf代码
java处理pdf代码
12 0
|
4天前
|
Java
java图片处理代码
java图片处理代码
11 1
|
5天前
|
设计模式 Java
Java8实战-通过行为参数化传递代码
Java8实战-通过行为参数化传递代码
10 0