Java注释规范
2009-10-20 09:20
351 查看
Java注释规范
2007年03月27日 星期二 14:01
Java
--
@author LEI
@version 1.10 2005-09-01
1
注释文档将用来生成
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
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
一个数字……
…
对于参数的描述如果只是一短语,最好不要首字母大写,结尾也不要句号。
对于参数的描述是一个句子,最好不要首字母大写,如果出现了句号这说明你的描述不止一句话。如果非要首字母大写的话,必须用句号来结束句子。(英文的句号)
公司内部添加
ByRef
和
ByVal
两个标记,例如:
* @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.class
的
member
文件的
URL
。
4 HTML
在注释描述部分可以使用
HTML
代码。
…
表示段落
….
表示自动标号
5
/**
* Graphics is the abstract base class for all graphics contexts
* which allow an application to draw onto components realized on
* various devices or onto off-screen images.
* A Graphics object encapsulates the state information needed
* for the various rendering operations that Java supports.
This
* state information includes:
*
*
The Component to draw on
*
A translation origin for rendering and clipping coordinates
*
The current clip
*
The current color
*
The current font
*
The current logical pixel operation function (XOR or Paint)
*
The current XOR alternation color
*
(see setXORMode
)
*
*
* Coordinates are infinitely thin and lie between the pixels of the
* output device.
* Operations which draw the outline of a figure operate by traversing
* along the infinitely thin path with a pixel-sized pen that hangs
* down and to the right of the anchor point on the path.
* Operations which fill a figure operate by filling the interior
* of the infinitely thin path.
* Operations which render horizontal text render the ascending
* portion of the characters entirely above the baseline coordinate.
*
* Some important points to consider are that drawing a figure that
* covers a given rectangle will occupy one extra row of pixels on
* the right and bottom edges compared to filling a figure that is
* bounded by that same rectangle.
* Also, drawing a horizontal line along the same y coordinate as
* the baseline of a line of text will draw the line entirely below
* the text except for any descenders.
* Both of these properties are due to the pen hanging down and to
* the right from the path that it traverses.
*
* All coordinates which appear as arguments to the methods of this
* Graphics object are considered relative to the translation origin
* of this Graphics object prior to the invocation of the method.
* All rendering operations modify only pixels which lie within the
* area bounded by both the current clip of the graphics context
* and the extents of the Component used to create the Graphics object.
*
* @author
Sami Shaio
* @author
Arthur van Hoff
* @version
%I%, %G%
* @since
1.0
*/
public abstract class Graphics {
/**
* Draws as much of the specified image as is currently available
* with its northwest corner at the specified coordinate (x, y).
* This method will return immediately in all cases, even if the
* entire image has not yet been scaled, dithered and converted
* for the current output device.
*
* If the current output representation is not yet complete then
* the method will return false and the indicated
* {@link ImageObserver} object will be notified as the
* conversion process progresses.
*
* @param img
the image to be drawn
* @param x
the x-coordinate of the northwest corner
*
of the destination rectangle in pixels
* @param y
the y-coordinate of the northwest corner
*
of the destination rectangle in pixels
* @param observer
the image observer to be notified as more
*
of the image is converted.
May be
*
* @return
if the image is completely
*
loaded and was painted successfully;
*
otherwise.
* @see
Image
* @see
ImageObserver
* @since
1.0
*/
public abstract boolean drawImage(Image img, int x, int y,
ImageObserver observer);
/**
* Dispose of the system resources used by this graphics context.
* The Graphics context cannot be used after being disposed of.
* While the finalization process of the garbage collector will
* also dispose of the same system resources, due to the number
* of Graphics objects that can be created in short time frames
* it is preferable to manually free the associated resources
* using this method rather than to rely on a finalization
* process which may not happen for a long period of time.
*
* Graphics objects which are provided as arguments to the paint
* and update methods of Components are automatically disposed
* by the system when those methods return.
Programmers should,
* for efficiency, call the dispose method when finished using
* a Graphics object only if it was created directly from a
* Component or another Graphics object.
*
* @see
#create(int, int, int, int)
* @see
#finalize()
* @see
Component#getGraphics()
* @see
Component#paint(Graphics)
* @see
Component#update(Graphics)
* @since
1.0
*/
public abstract void dispose();
/**
* Disposes of this graphics context once it is no longer
* referenced.
*
* @see
#dispose()
* @since
1.0
*/
public void finalize() {
dispose();
}
}
2007年03月27日 星期二 14:01
Java
代码规范
--
注释
@author LEI@version 1.10 2005-09-01
1
注释文档的格式
注释文档将用来生成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
注释块标记
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
一个数字……
…
对于参数的描述如果只是一短语,最好不要首字母大写,结尾也不要句号。
对于参数的描述是一个句子,最好不要首字母大写,如果出现了句号这说明你的描述不止一句话。如果非要首字母大写的话,必须用句号来结束句子。(英文的句号)
公司内部添加
ByRef
和
ByVal
两个标记,例如:
* @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.class
的
member
文件的
URL
。
4 HTML
代码的使用
在注释描述部分可以使用HTML
代码。
…
表示段落
….
表示自动标号
5
注释示例
/*** Graphics is the abstract base class for all graphics contexts
* which allow an application to draw onto components realized on
* various devices or onto off-screen images.
* A Graphics object encapsulates the state information needed
* for the various rendering operations that Java supports.
This
* state information includes:
*
*
The Component to draw on
*
A translation origin for rendering and clipping coordinates
*
The current clip
*
The current color
*
The current font
*
The current logical pixel operation function (XOR or Paint)
*
The current XOR alternation color
*
(see setXORMode
)
*
*
* Coordinates are infinitely thin and lie between the pixels of the
* output device.
* Operations which draw the outline of a figure operate by traversing
* along the infinitely thin path with a pixel-sized pen that hangs
* down and to the right of the anchor point on the path.
* Operations which fill a figure operate by filling the interior
* of the infinitely thin path.
* Operations which render horizontal text render the ascending
* portion of the characters entirely above the baseline coordinate.
*
* Some important points to consider are that drawing a figure that
* covers a given rectangle will occupy one extra row of pixels on
* the right and bottom edges compared to filling a figure that is
* bounded by that same rectangle.
* Also, drawing a horizontal line along the same y coordinate as
* the baseline of a line of text will draw the line entirely below
* the text except for any descenders.
* Both of these properties are due to the pen hanging down and to
* the right from the path that it traverses.
*
* All coordinates which appear as arguments to the methods of this
* Graphics object are considered relative to the translation origin
* of this Graphics object prior to the invocation of the method.
* All rendering operations modify only pixels which lie within the
* area bounded by both the current clip of the graphics context
* and the extents of the Component used to create the Graphics object.
*
* @author
Sami Shaio
* @author
Arthur van Hoff
* @version
%I%, %G%
* @since
1.0
*/
public abstract class Graphics {
/**
* Draws as much of the specified image as is currently available
* with its northwest corner at the specified coordinate (x, y).
* This method will return immediately in all cases, even if the
* entire image has not yet been scaled, dithered and converted
* for the current output device.
*
* If the current output representation is not yet complete then
* the method will return false and the indicated
* {@link ImageObserver} object will be notified as the
* conversion process progresses.
*
* @param img
the image to be drawn
* @param x
the x-coordinate of the northwest corner
*
of the destination rectangle in pixels
* @param y
the y-coordinate of the northwest corner
*
of the destination rectangle in pixels
* @param observer
the image observer to be notified as more
*
of the image is converted.
May be
*
null
* @return
true
if the image is completely
*
loaded and was painted successfully;
*
false
otherwise.
* @see
Image
* @see
ImageObserver
* @since
1.0
*/
public abstract boolean drawImage(Image img, int x, int y,
ImageObserver observer);
/**
* Dispose of the system resources used by this graphics context.
* The Graphics context cannot be used after being disposed of.
* While the finalization process of the garbage collector will
* also dispose of the same system resources, due to the number
* of Graphics objects that can be created in short time frames
* it is preferable to manually free the associated resources
* using this method rather than to rely on a finalization
* process which may not happen for a long period of time.
*
* Graphics objects which are provided as arguments to the paint
* and update methods of Components are automatically disposed
* by the system when those methods return.
Programmers should,
* for efficiency, call the dispose method when finished using
* a Graphics object only if it was created directly from a
* Component or another Graphics object.
*
* @see
#create(int, int, int, int)
* @see
#finalize()
* @see
Component#getGraphics()
* @see
Component#paint(Graphics)
* @see
Component#update(Graphics)
* @since
1.0
*/
public abstract void dispose();
/**
* Disposes of this graphics context once it is no longer
* referenced.
*
* @see
#dispose()
* @since
1.0
*/
public void finalize() {
dispose();
}
}
相关文章推荐
- java注释规范
- java注释规范
- Java 注释规范
- 编程规范——Java注释样式规范与模板
- Java注释规范整理
- JAVA的注释规范
- Java注释规范整理
- java注释规范
- JAVA:注释规范
- Java 注释规范详解
- JAVA注释规范
- java开发规范总结_代码注释规范
- java注释规范
- Java和Android注释规范
- Java注释规范整理
- Java注释及其规范
- java主类结构、基本数据类型、 变量与常量、运算符、数据类型转换、代码注释与编码规范
- java中的注释规范,生成javadoc
- java 注释规范:http://cetus.iteye.com/blog/1110280
- Java注释规范整理