JAVA编码规范
应该使用全名来描述大多数变量,但对于Java代码中经常使用的且具有相同“简写”的变量,使用另外的字母代替,在下表中列出了一些例子:
Character Coordinate Exception Graphics Object Stream String
c,d,e x,y,z E G O
in,out,inOut S
4.12 属性命名
4.12.1 使用“this”关键字限定属性变量,用于区分逻辑变量
class Dude {
private String name;
public Dude(String name) { this.name = name; }
public setName(String name) { this.name = name; } }
4.13 参数命名
4.13.1 当一个构件器或一个“set”方法通过参数赋值给一个属性时,将参数和属性采用同
样的名字来命名
使用逻辑变量来隐藏实例变量的名称,这是一种”poor”风格,但这种规则也有些有益的地方,使用相同的命名能比使用不同的命名更能让人意识到其中的重要性,同时使用相同的命名能让你准确地了解参数是赋值给属性的。 class Dude {
private String name;
public Dude(String name) { this.name = name;
}
public setName(String name) { this.name = name;
南京朗坤软件有限公司 第25/48页
JAVA编码规范
} }
4.14 常量命名
在命名常数时,每一个单词中的所有字母大写,单词之间采用下划线来进行分割 使用大写来命名常量。使得他们能够很好与变量区分。
class Byte {
public static final byte MAX_VALUE = 255; public static final byte MIN_VALUE = 0;
public static final Class TYPE = Byte.class; }
南京朗坤软件有限公司 第26/48页
JAVA编码规范
5 注释规范
5.1 保持注释和代码同步
当修改代码时,必须同时更新对应的注释,代码和文档同时为一个软件产品,故而同样重要。
5.2 使用主动语态并尽量忽略不需要的用词
对于代码来说,注释是应该是有力的、清楚的并且是简明的语言,故在编写注释时尽量采用主动语态并尽量忽略不需要的用词。
5.3 注释类型
Java提供三种注释类型: ?
文档注释用“/**”开始,并由”*/”结束
/**
*文档注释. */
?
标准的c语言格式注释,用”/*”开始”*/”结束
/*
* 标准注释 */
?
单行或行尾注释,采用”//”开始
//单行注释
class Myclass {
int myField; //行尾注释 ... }
每一种注释类型均有特有的使用场合,合理地使用这三种规则。
5.4 版权信息注释
版权信息必须在 java 文件的开头。/** *
Title: 主题
*Description: 描述
*
Copyright: Copyright (c) 2004
*Company: luculent
* @author: * @version 1.0 */
南京朗坤软件有限公司 第27/48页
JAVA编码规范
5.5 使用文档注释来描述程序接口
在代码中,应该把文档注释放在编写的类、接口、方法、构件器或者是属性前,这对于使用javadoc工具来生成对应的HTML格式的文档很有好处,javadoc功能只认可在类、接口、构造器、方法或属性前编写的文档,javadoc会忽略在方法内部的注释,javadoc只认可语句前的一段注释,所以不要在语句前使用多个注释段。
文档注释的主要目的是约定客户端和服务器端之间的连接,一个与方法关联的文档,应该描述所有的可供调用的的功能,以及返回值,没有必要阐述具体的实现细节。
下面实例中,使用文档注释一个类中包含内部类、属性、方法、和构造器: /**
* The Rectangle2D class describles *a rectangle defined by location(x,y) and *dimensions(w,h) *... */
public abstract class Rectangle2D extends RectangularShape { /**
* The Double class defines a * rectangle specified in double coordinate... */
static class Double extends Rectangle2D {.....} ...
/**
*The bitmask that indicates that a point lies *below this Rectangle2D... */
static int OUT_BOTTOM; ... /**
*Adds a Rectangle2D to this Rectangle2D... */
public void add(Rectangle2D r) {...} ... /**
* This is an abstract class that cannot be * instantiated derectly... */
protected Rectangle2D() {...}
南京朗坤软件有限公司 第28/48页

