java私有变量命名规范Word文档格式.docx
《java私有变量命名规范Word文档格式.docx》由会员分享,可在线阅读,更多相关《java私有变量命名规范Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
而不是:
bytebuffer[](习惯性问题而已)。
值得注意的是,命名时应尽量采用完整的英文描述符(也有特例)。
此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。
归纳成以下几点,就是:
尽量使用完整的英文描述符、采用适用于相关领域的术语、采用大小写混合使名字可读、尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一、避免使用长的名字(小于15个字母是个好主意)、避免使用类似的名字,或者仅仅是大小写不同的名字、避免使用下划线(除静态常量等)。
篇二:
java各种命名规范
定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。
包的命名(全部小写,由域名定义)
java包的名字都是由小写单词组成。
但是由于java面向对象编程的特性,每一名java程序员都可以编写属于自己的java包,为了保障每个java包命名的唯一性,在最新的java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。
由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。
例如:
net.frontfree.javagroup
类的命名(单词首字母大写)
根据约定,java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大写例如testpage;
如果类名称中包含单词缩写,则这个缩写词的每个字母均应大写,如:
xmlexample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
graphics
方法的命名(首字母小写,字母开头大写)
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。
例如:
drawimage
常量的命名(全部大写,常加下划线)
常量的名字应该都使用大写字母,并且指出该常量完整含义。
如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。
max_Value
参数的命名
参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。
javadoc注释
java除了可以采用我们常见的注释方式之外,java语言规范还定义了一种特殊的注释,也就是我们所说的javadoc注释,它是用来记录我们代码中的api的。
javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些html标记符和专门的关键词。
使用javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。
/**
*thisisanexampleof
*javadoc
*@authordarchon
*@version0.1,10/11/20xx
*/
在每个程序的最开始部分,一般都用javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加javadoc注释,每个注释的开头
部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。
在描述性段落之后还可以跟随一些以javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示。
变量和常量命名
变量的命名
主要的的命名规范有以下三种:
came(java私有变量命名规范)l标记法:
首字母是小写的,接下来的单词都以大写字母开头
pascal标记法:
首字母是大写的,接下来的单词都以大写字母开头
匈牙利标记法:
在以pascal标记法的变量前附加小写序列说明该变量的类型
在java我们一般使用匈牙利标记法,基本结构为scope_typeVariablename,它使用1-3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。
例如,定义一个整形变量,用来记录文档数量:
intdoccount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。
这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。
byte、int、char、long、float、double、boolean和short。
数据类型/前缀(附)
byteb
charc
shortsh
inti
longl
strings
floatf
doubled
hashtableh
[]arr
listlst
Vectorv
stringbuffersb
booleanb
bytebt
mapmap
objectob
对于在多个函数内都要使用的全局变量,在前面再增加“g_”。
例如一个全局的字符串变量:
g_struserinfo。
在变量命名时要注意以下几点:
·
选择有意义的名字,注意每个单词首字母要大写。
在一段函数中不使用同一个变量表示前后意义不同的两个数值。
i、j、k等只作为小型循环的循环索引变量。
避免用Flag来命名状态变量。
用is来命名逻辑变量,如:
blnFileisFound。
通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。
如果需要的话,在变量最后附加计算限定词,如:
cursalessum。
命名不相包含,cursales和cursalessum。
staticfinal变量(常量)的名字应该都大写,并且指出完整含义。
如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。
例如,如果在代码的某些区域中使用intcnt,而在另一些区域中又使用intcount,就会给代码增加不必要的复杂性。
建议变量名中尽量不要出现缩写。
通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。
例如,请使用strcustomerFirst和strcustomerlast,而不要使用strFirstcustomer和strlastcustomer。
常用的量词后缀有:
First(一组变量中的第一个)、last(一组变量中的最后一个)、next(一组变量中的下一个变量)、prev(一组变量中的上一个)、cur(一组变量中的当前变量)。
为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。
用于变量的数据类型可能会影响该变量进行计算所产生的结果。
在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。
这类问题极难查找。
尽量缩小变量的作用域。
如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。
它们的主要问题是,任何类中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。
占用资源是作用域涉及的一个重要问题。
对变量来说,尽量缩小作用域将会对应用程序的可靠性产生巨大的影响。
关于常量的命名方法,在jaVa代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。
也就是说,程序中除0,1以外,尽量不应该出现其他数字。
常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含义。
如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词如:
num_days_in_week、max_Value。
篇三:
java命名规范
java项目命名规范20xx-07-2713:
31规范等级说明
级别i:
默认登记要求所有项目中的所有成员遵守。
级别ii:
建议所有项目中的所有成员遵守。
级别iii:
鼓励各个项目根据实际情况执行。
1.格式与命名规范(Formatingandnamingconventions)
1.1缩进
使用tab缩进,而不是空格键--将缩进2,4,8字符的选择权留给阅读者。
1.2换行
每行120字符--因为已是1024*768的年代。
if,for,while语句只有单句时,如果该句可能引起阅读混淆,需要用"
{"
和"
}"
括起来,否则可以省略。
//错误,需要使用花括号{}括起来
if(condition)
if(condition)dosomething();
else
dosomething();
1.3命名规则
遇到缩写如xml时,仅首字母大写,即loadxmldocument()而不是loadxmldocument()
package名必须全部小写,尽量使用单个单词
interface名可以是一个名词或形容词(加上able,ible,orer后缀),如Runnable,accessible。
为了基于接口编程,不采用首字母为i或加上iF后缀的命名方式,如ibookdao,bookdaoiF。
局部变量及输入参数不要与类成员变量同名(get/set方法与构造函数除外)
1.4声明
修饰符应该按照如下顺序排列:
public,protected,private,abstract,static,final,transient,volatile,synchronized,native,strictfp。
类与接口的声明顺序(可用eclipse的source->
sortmembers功能自动排列):
静态成员变量/staticFields
静态初始化块/staticinitializers
成员变量/Fields
初始化块/initializers
构造器/constructors
静态成员方法/staticmethods
成员方法/methods
类型(内部类)/types(innerclasses)
同等的类型,按public,protected,private的顺序排列。
2.注释规范(documentconvertions)
2.1注释类型
2.1.1javadoc注释
略。
2.1.2失效代码注释
由/*...*/界定,标准的c-style的注释。
专用于注释已失效的代码。
/*
*commentoutthecode
*strings="
hello"
;
*system.out.println(s);
2.1.3代码细节注释
由//界定,专用于注释代码细节,即使有多行注释也仍然使用//,以便与用/**/注释的失效代码分开
除了私有变量外,不推荐使用行末注释。
classmyclass{
privateintmyField;
//anend-linecomment.
publicvoidmymethod{
//averyverylong
//comment.
if(condition1){
//condition1comment
...
}else{
//elsesconditioncomment
2.2注释的格式
注释中的第一个句子要以(英文)句号、问号或者感叹号结束。
javadoc生成工具会将注释中的第一个句子放在方法汇总表和索引中。
为了在javadoc和ide中能快速链接跳转到相关联的类与方法,尽量多的使用@seexxx.myclass,@seexx.myclass#find(string)。
class必须以@author作者名声明作者,不需要声明@version与@date,由版本管理系统保留此信息。
(ii)
如果注释中有超过一个段落,用 分隔。
示例代码以 包裹。
标识(javakeyword,class/method/field/argument名,constants)以包裹。
标识在第一次出现时以{@linkxxx.myclass}注解以便javadoc与ide中可以链接。
2.3注释的内容
2.3.1可精简的注释内容
注释中的每一个单词都要有其不可缺少的意义,注释里不写"
@paramname-名字"
这样的废话。
如果该注释是废话,连同标签删掉它,而不是自动生成一堆空的标签,如空的@paramname,空的@return。
2.3.2推荐的注释内容
对于api函数如果存在契约,必须写明它的前置条件(precondition),后置条件(postcondition),及不变式(invariant)。
对于调用复杂的api尽量提供代码示例。
对于已知的bug需要声明。
2.3.3null规约
如果方法允许null作为参数,或者允许返回值为null,必须在javadoc中说明。
如果没有说明,方法的调用者不允许使用null作为参数,并认为返回值是nullsafe的。
*获取对象.
*
*@returntheobjecttofoundornullifnotfound.
objectget(integerid){
2.3.4特殊代码注释
代码质量不好但能正常运行,或者还没有实现的代码用//todo:
或//xxx:
声明存在错误隐患的代码用//Fixme:
声明
3.编程规范(programmingconventions)
3.1基本规范
当面对不可知的调用者时,方法需要对输入参数进行校验,如不符合抛出illegalargumentexception,建议使用spring的assert系列函数。
隐藏工具类的构造器,确保只有static方法和变量的类不能被构造
变量定义尽量基于接口而不是具体实现类,如mapmap=newhashmap()
代码中不能使用system.out.println(),e.printstacktrace(),必须使用logger打印信息。
3.2异常处理
重新抛出的异常必须保留原来的异常,即thrownewnewexception("
message"
e);
而不能写成thrownewnewexception("
)。
在所有异常被捕获且没有重新抛出的地方必须写日志。
如果属于正常异常的空异常处理块必须注释说明原因,否则不允许空的catch块。
框架尽量捕获低级异常,并封装成高级异常重新抛出,隐藏低级异常的细节。
(iii)
3.3代码度量
3.3.1耦合度度量
dac度量值不要不大于7(iii)
解释:
dac(dataabstractioncoupling)数据抽象耦合度是描述对象之间的耦合度的一种代码度量。
dac度量值表示一个类中有实例化的其它类的个数。
cFo度量值不要不大于20(iii)
cFo(classFanout)类扇出是描述类之间的耦合度的一种代码度量。
cFo度量值表示一个类依赖的其他类的个数。
3.3.2方法度量
方法(构造器)参数在7个以内(ii)
太多的方法(构造器)参数影响代码可读性,还是不良设计的征兆。
考虑用值对象代替这些参数,或者重新设计。
方法长度150行以内(ii)
太长的方法影响代码可读性,还是一个方法承担了太多责任的征兆。
建议拆分责任。
cc度量值不大于10(iii)
cc(cyclomaticcomplexity)圈复杂度指一个方法的独立路径的数量,可以用一个方法内if,while,do,for,catch,switch,case,:
语句与&
&
||操作符的总个数来度量。
npath度量值不大于200(iii)
npath度量值表示一个方法内可能的执行路径的条数。
3.3.3其他度量
布尔表达式中的布尔运算符(&
||)的个数不超过3个(iii)
if语句的嵌套层数3层以内(ii)
文件长度2000行以内(ii)
太大的源程序文件影响代码可读性,还是一个类承担了太多责任的征兆,建议拆分责任到其他类上。
匿名内部类20行以内(ii)
太长的匿名内部类影响代码可读性。
建议:
重构为命名的(普通)内部类。
3.4jdk5.0
重载方法必须使用@override,可避免父类方法改变时导致重载函数失效。
不需要关心的warning报告用@suppresswarnings("
unused"
),@suppresswarnings("
unchecked"
serial"
)注释掉
4.自动代码检查
使用eclipse与inellijidea的代码校验已经可以查出很多的代码质量问题。
再配合使用checkstyle,pmd,Findbugs三重检查,涵盖了大部分的代码guideline。
eclipse:
在windows->
preferences->
java-compiler->
errors/warnings中,按本文档的规则将一些原来ignore的规则打开。
idea:
在setting->
errors中设定规则,调用analyzer->
inspececode进行校验。
checkstyle:
安装checkstyle的eclipse插件,在windows->
checkstyle导入springside团队预设在/tools/codereviewer/springside_check.xml的规则
pmd:
安装pmd的eclipse插件,windows->
pmd清除原来所有规则,导入springside团队预设在/tools/codereviewer/springside_pmd.xml的Ruleset。
Findbugs:
安装Findbugs的eclipse插件,在项目属性->
Findbugs中,取消下列警告ms/ei/ei2/,snVi/se/ws/Rs,st/np/uwF/ss/uuF|urF|sic