由于Java面向对象编程的特性, 在命名时应尽量选择名词。
一、包命名规范。
在java开发的过程中,每名Java开发人员都可以编写属于自己的java package,为了在编写中保证每一个java package命名的唯一性,要求开发人员在自己定义的包名前加上唯一的前缀。所以多数开发人员采用自己公司的名称.项目名.模块名.*.*.*在互联网上的域名称作为自己程序包的唯一前缀。例如: com.sun.xml.*.*.*,但要是个人的项目我们又应该怎么命名呢?
indi :
个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,版权主要属于发起者。
包名为indi.发起者名.项目名.模块名*.*.*
pers :
个人项目,指个人发起,独自完成,可分享的项目,版权主要属于个人。
包名为pers.个人名.项目名.模块名*.*.*
priv :
私有项目,指个人发起,独自完成,非公开的私人使用的项目,版权属于个人。
包名为priv.个人名.项目名.模块名*.*.*
另外,我为了区分团队项目和前面所说项目的区分,还有了一下扩展:
team :
团队项目指由团队发起,并由该团队开发的项目,版权属于该团队所有。
包名为team.团队名.项目名.模块名*.*.*
com :
公司项目:由项目发起的公司所有。
包名为com.公司名.项目名.模块名*.*.*
二、类命名规范。
类名必须使用名词,如果一个类名内含多个单词,那么各个单词第一个字母大写,后续字母小写,起伏呈驼峰状,人称驼峰式命名。给类名命名时,必须保证准确、简洁且容易理解。尽量使用完整单词,避免使用缩写词(除了大家公认的)。
2.1 类的命名
2.1.1 一般要求
1、选择有意义的名字,能快速地传达该类的用途。
2、参照java驼峰命名法,类名的首字母必须采用大写的形式,如果类名为多词组合而成的话,那么每个词的首字母必须采用大写。如:StudentAnswer.java
3、当要区别接口类和实现类的时候,可以在类的后面加上“Impl”。
如:接口类:UserInterface.java 接口实现类:UserInterfaceImpl。
4、推荐实体类没有后缀名。
2.1.2 实际应用
应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类),每一层的类的名称尽量带上该层后缀。
1、Dao层
a、接口类:采用JavaBean+Interface+Dao的形式来定义,即,实体对象+Interface+Dao。
如:用户对象接口类: UserInterfaceDao,其中xxx为模块名称。
b、实现类:采用JavaBean+Interface+Impl+Dao的形式来定义,即,实体对象
+Interface+Impl+Dao。 如:用户对象实现类:UserInterfaceImplDao
2、Service层
a、接口类:采用Xxx+Interface+Service的形式来定义,即,模块+Interface+Service。
如:用户管理接口类:UserMsgInterfaceServiec
b、实现类:采用Xxx+Interface+Impl+Service的形式来定义,即,模块+Interface+
Impl+Service。如:用户管理实现类:UserMsgInterfaceImplServiec
3、Web层(action类)
a、实现类:采用县 Xxx+Operator+Action的形式来定义,即,模块+操作+Action。如
用户模块User+删除操作Delete+Action = UserDeleteAction
2.2 变量的命名
2.2.1 普通变量
2.2.1.1 一般要求
1、选择有意义的名字,能快速地传达该变量的用途。
2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
2.2.1.2 实际应用
1、变量命名采用基本结构为typeVariableName,使用3字符前缀来表示数据类型。
例如,定义一个整形变量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。
数据类型或对象类型 变量前缀 备注
Byte bye
Char chr
Float flt
Boolean bln
Integer/int int
Short sht
Long/long lng
Double/double dbl
String str
2、做数组用时,再加前缀-a,如字符串数组:astr,
3、自定义类型的变量可以采用本身的名称,把首字母改为小写。
4、采用名称要能代表在方法中的意义。如果员工列表:employeeList。
2.2.1.3、变量使用技巧:
a、在一段函数中不使用同一个变量表示前后意义不同的两个数值。
b、除非是在循环中,否则一般不推荐使用单个字母作为变量名,i、j、k等只作为小型循环的循环索引变量。
c、避免用Flag来命名状态变量。
d、用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。
e、如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。
2.2.2 静态变量
1、选择有意义的名字,能快速地传达该变量的用途。
2、参照java驼峰命名法,采用全部大写的形式来书写,对于采用多词合成的变量采用“_”来连接各单词。如:USER_LIST
2.3 方法的命名
2.3.1 一般要求
1、选择有意义的名字,能快速地传达该方法的用途。
2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
2.3.2 实际应用
1、方法表示一种行为,它代表一种动作,最好是一个动词或者动词词组或者第一个单词为一个动词。
2、属性方法:以get/set开头,其后跟字段名称,字段名称首字母大写。如:getUserName()
3、数据层方法:只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。
4、服务层方法,根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。
5、Web层方法最好是贴近web的语言,如register,login,logout等方法。
三、注释书写规范。
Java除了可以采用我们常见的注释方式(//、/* */)之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,以/**开头,而以*/结束, Javadoc 注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 推荐使用。
Javadoc注释主要涉及范围:类、属性、方法。
一、包命名规范。
在java开发的过程中,每名Java开发人员都可以编写属于自己的java package,为了在编写中保证每一个java package命名的唯一性,要求开发人员在自己定义的包名前加上唯一的前缀。所以多数开发人员采用自己公司的名称.项目名.模块名.*.*.*在互联网上的域名称作为自己程序包的唯一前缀。例如: com.sun.xml.*.*.*,但要是个人的项目我们又应该怎么命名呢?
indi :
个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,版权主要属于发起者。
包名为indi.发起者名.项目名.模块名*.*.*
pers :
个人项目,指个人发起,独自完成,可分享的项目,版权主要属于个人。
包名为pers.个人名.项目名.模块名*.*.*
priv :
私有项目,指个人发起,独自完成,非公开的私人使用的项目,版权属于个人。
包名为priv.个人名.项目名.模块名*.*.*
另外,我为了区分团队项目和前面所说项目的区分,还有了一下扩展:
team :
团队项目指由团队发起,并由该团队开发的项目,版权属于该团队所有。
包名为team.团队名.项目名.模块名*.*.*
com :
公司项目:由项目发起的公司所有。
包名为com.公司名.项目名.模块名*.*.*
二、类命名规范。
类名必须使用名词,如果一个类名内含多个单词,那么各个单词第一个字母大写,后续字母小写,起伏呈驼峰状,人称驼峰式命名。给类名命名时,必须保证准确、简洁且容易理解。尽量使用完整单词,避免使用缩写词(除了大家公认的)。
2.1 类的命名
2.1.1 一般要求
1、选择有意义的名字,能快速地传达该类的用途。
2、参照java驼峰命名法,类名的首字母必须采用大写的形式,如果类名为多词组合而成的话,那么每个词的首字母必须采用大写。如:StudentAnswer.java
3、当要区别接口类和实现类的时候,可以在类的后面加上“Impl”。
如:接口类:UserInterface.java 接口实现类:UserInterfaceImpl。
4、推荐实体类没有后缀名。
2.1.2 实际应用
应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类),每一层的类的名称尽量带上该层后缀。
1、Dao层
a、接口类:采用JavaBean+Interface+Dao的形式来定义,即,实体对象+Interface+Dao。
如:用户对象接口类: UserInterfaceDao,其中xxx为模块名称。
b、实现类:采用JavaBean+Interface+Impl+Dao的形式来定义,即,实体对象
+Interface+Impl+Dao。 如:用户对象实现类:UserInterfaceImplDao
2、Service层
a、接口类:采用Xxx+Interface+Service的形式来定义,即,模块+Interface+Service。
如:用户管理接口类:UserMsgInterfaceServiec
b、实现类:采用Xxx+Interface+Impl+Service的形式来定义,即,模块+Interface+
Impl+Service。如:用户管理实现类:UserMsgInterfaceImplServiec
3、Web层(action类)
a、实现类:采用县 Xxx+Operator+Action的形式来定义,即,模块+操作+Action。如
用户模块User+删除操作Delete+Action = UserDeleteAction
2.2 变量的命名
2.2.1 普通变量
2.2.1.1 一般要求
1、选择有意义的名字,能快速地传达该变量的用途。
2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
2.2.1.2 实际应用
1、变量命名采用基本结构为typeVariableName,使用3字符前缀来表示数据类型。
例如,定义一个整形变量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。
数据类型或对象类型 变量前缀 备注
Byte bye
Char chr
Float flt
Boolean bln
Integer/int int
Short sht
Long/long lng
Double/double dbl
String str
2、做数组用时,再加前缀-a,如字符串数组:astr,
3、自定义类型的变量可以采用本身的名称,把首字母改为小写。
4、采用名称要能代表在方法中的意义。如果员工列表:employeeList。
2.2.1.3、变量使用技巧:
a、在一段函数中不使用同一个变量表示前后意义不同的两个数值。
b、除非是在循环中,否则一般不推荐使用单个字母作为变量名,i、j、k等只作为小型循环的循环索引变量。
c、避免用Flag来命名状态变量。
d、用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。
e、如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。
2.2.2 静态变量
1、选择有意义的名字,能快速地传达该变量的用途。
2、参照java驼峰命名法,采用全部大写的形式来书写,对于采用多词合成的变量采用“_”来连接各单词。如:USER_LIST
2.3 方法的命名
2.3.1 一般要求
1、选择有意义的名字,能快速地传达该方法的用途。
2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
2.3.2 实际应用
1、方法表示一种行为,它代表一种动作,最好是一个动词或者动词词组或者第一个单词为一个动词。
2、属性方法:以get/set开头,其后跟字段名称,字段名称首字母大写。如:getUserName()
3、数据层方法:只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。
4、服务层方法,根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。
5、Web层方法最好是贴近web的语言,如register,login,logout等方法。
三、注释书写规范。
Java除了可以采用我们常见的注释方式(//、/* */)之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,以/**开头,而以*/结束, Javadoc 注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 推荐使用。
Javadoc注释主要涉及范围:类、属性、方法。