【转】开发笔记:Java命名规范

来源:百度文库 编辑:神马文学网 时间:2024/04/30 01:28:56
【转】开发笔记:Java命名规范

在开发过程中,命名的规范性是非常重要的。
命名非常杂乱无序的程序无论如何称不上好的程序,毕竟,就像Martin Fowler说的:程序不光是交给机器运行的,也是让人读的。

下面总结了 Java Language Specification 规定的命名法则。


Package
Names

 

由一组以“.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母,例如:

com, edu,
gov, mil, net, org, uk,
jp

 

举例:

com.JavaSoft.jag.Oak

uk.ac.city.rugby.name

org.npr.plddge.driver

 

要注意的是,根据Sun公司的规定,“java”不能用于第一个标识符。

 

Class and
Interface Names

 

由一组描述性的名词或者短语构成,不应该过长,每个单词的首字母都应该大写

 

举例:

ClassLoader

SecurityManager

Thread

Dictionary

 

对于Interface,应该使用描述某种行为的形容词

举例:

Clonable

Runnable

 

Type Variable
Names

 

应该尽量简明扼要(最好是一个字母),以利于与普通的class或interface区分

Container中的Element应该用E表示;Map里的key用K表示,value用V;Type用T表示;异常用X表示

如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

如果在范型方法存在于范型类中,应当尽量避免使用同样的Type Variable Names,以免混淆

 

举例:

public
class HashSet extends AbstractSet {…}

public
class HashMap extends AbstractMap {…}

public
class ThreadLocal {…}

public
interface Functor {

    T val() throws X;

}

 

Method Names

 

应该由动词或者动词短语混合构成,第一个单词小写,此后每个单词的首字母大写

设置/获取某个值的Method,应该遵循setV/getV规范

返回长度的Method,应该命名为length

测试某个布尔值的Method,应该命名为isV

将对象转换为某个特定类型的Mehod应该命名为toF

 

举例:

getDate();

length();

isReady();

toOracleFormat();

 

Fields Names

 

由名词、名词短语或者名词的缩写构成

第一个单词小写,此后每个单词的首字母大写

举例:

java.io.ByteArrayInputStream中的

buf, pos,
count

java.io.InterruptedIOException中的

bytesTransferred

 

Constant Names

 

由多个单词或缩写组合而成,所有字母都要求大写,并且以“_”连接

 

举例:

MIN_VALUE

MAX_VALUE

MIN_RADIX

MAX_RADIX

 

Local
Variable and Parameter Names

 

由意义明确的短词构成,通常均为小写,而且不是完整的单词

cp代表colorPoint

buf代表buffer

off代表offset

len代表length

 

除非是在循环中,否则一般不推荐使用单个字母作为变量名,不过也有例外,即约定俗成的单个字母

b代表byte

c代表char

d代表double

e代表Exception

f代表float

i, j, k代表整数

l代表long

o代表Object

s代表String

v代表某些类型的特定值