第1页共37页技术文件技术文件名称:编码规范细则_Java技术文件编号:版本:1.0共37页(包括封面)拟制审核会签标准化批准编码规范细则_Java第2页共37页目录前言.......................................................................41范围.....................................................................52术语和定义...............................................................52.1原则.............................................................52.2规则.............................................................52.3建议.............................................................52.4说明.............................................................52.5正例.............................................................52.6反例.............................................................53代码布局.................................................................53.1基本格式.........................................................53.2对齐.............................................................73.3空行空格.........................................................83.4断行.............................................................94注释....................................................................115命名规则................................................................166声明....................................................................227表达式与语句............................................................228类和接口................................................................269附编程实例..............................................................28编码规范细则_Java第3页共37页版本变更记录版本号拟制/修改日期拟制/修改人修改记录批准人注:1)拟制、审核、会签、批准不走电子流程时,必须用钢笔或签字笔填写,不得用铅笔、圆珠笔填写,不得涂改。本模板中用“”括起来的内容包括本段,是编写指导,在最终的文档中应予以删除。其它内容应予以保留。如果某节内容无需填写,则在该节下写“无”,而不要将本节删除或不填写任何内容(留白将无法判断:是本节内容无需填写还是因为疏忽而忘了填写。)编码规范细则_Java第4页共37页前言编码规范包括总则和细则两部分。总则部分是对编码的总体性规范要求,适用于多种编码语言;细则部分是在总则的规范要求下,针对具体语言的特点而提出的规范要求。本规范是编码规范的细则部分,适用于JAVA编程语言。编写本规范的目的是为了进一步规范JAVA软件编程风格,提高软件源程序的可读性、可靠性和可重用性,确保在开发成员或开发团队之间的工作可以顺利交接,不必花很大的力气便能理解已编写的代码,以便继续维护和改进以前的工作,提高软件源程序的质量和可维护性,减少软件维护成本。本规范的内容包括:代码布局、注释、命名规则、声名、表达式与语句、类与接口等。规范最后给出了一个编程实例供软件人员参考。本规范分成规则性和建议性两种:对于规则性规范,要求所有软件开发人员严格执行;对于建议性规范,各项目编程人员可以根据实际情况选择执行。自本规范实施之日起,以后新编写的和修改的代码均应执行本规范编码规范细则_Java第5页共37页51范围本标准规定了Java语言的编程规范,主要包括基本原则、布局、注释、命名规则、声明、表达式与语句、类和接口等。本规范自生效之日起,对以后新编写的和修改的代码有约束力。2术语和定义下列术语和定义适用于本标准。2.1原则编程时应该坚持的指导思想。2.2规则编程时必须遵守的约定。2.3建议编程时必须加以考虑的约定。2.4说明对此规则或建议的必要的解释。2.5正例对此规则或建议给出的正确例子。2.6反例对此规则或建议给出的反面例子。3代码布局代码布局的目的是显示出程序良好的逻辑结构,提高程序的准确性、连续性、可读性、可维护性。更重要的是,统一的代码布局和编程风格,有助于提高整个项目的开发质量,提高开发效率,降低开发成本。同时,对于普通程序员来说,养成良好的编程习惯有助于提高自己的编程水平,提高编程效率。因此,统一的、良好的程序布局和编程风格不仅仅是个人主观美学上的或是形式上的问题,而且涉及到产品质量,涉及到个人编程能力的提高,必须要引起重视。3.1基本格式正例:packagecom.zte;【规则3-1-1】源代码文件(.java)的布局顺序是:包、import语句、类。编码规范细则_Java第6页共37页6importjava.awt.peer.CanvasPeer;importjava.io.*;importcom.zte.ums.uep.*;publicclassClassName{}说明:package语句其后可跟import语句,而且与package间隔一个空行。import包的排列顺序为java开头的包在最前面,接下来是引自外部的包,再接下来是应用程序自身的包,即import中标准的包名要在本地的包名之前,而且按照字母顺序排列。正例:packagecom.zte;importjava.awt.peer.CanvasPeer;//java自身的包importjava.io.*;importcom.klg.field.*;//第三方的包importcom.zte.ums.uep.*;//程序自身的包说明:这样可以防止书写失误,也易于阅读。正例:if(varible1varible2){varible1=varible2;}反例:下面的代码执行语句紧跟if的条件之后,而且没有加{},违反规则。if(varible1varible2)varible1=varible2;说明:这样便于程序阅读和查找。【规则3-1-2】遵循统一的布局顺序来书写import语句,不同类别的import语句之间用空行分隔。【规则3-1-3】if、else、elseif、for、while、do等语句独占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。〖建议3-1-1〗源程序中关系较为紧密的代码应尽可能相邻。编码规范细则_Java第7页共37页7正例:length=10;width=5;//矩形的长与宽关系较密切,放在一起。strCaption=“Test”;反例:length=10;strCaption=“Test”;width=5;3.2对齐说明:对于利用JBuilder等编程工具的,可以设置TAB键为4个空格代替。消除不同编辑器对制表符处理的差异。说明:这样使代码便于阅读,并且方便注释。do…while语句可以例外,while条件可与}在同一行。正例:voidfunction(intvar){while(condition){doSomething();//与{}缩进4格}//与引用它们的模块左对齐}反例:voidfunction(intvar){while(condition){doSomething();}}正例:int[][]number={{1,1,1},{2,4,8},【规则3-2-1】一般禁止使用制表符,必须使用空格进行缩排。缩进为4个空格。【规则3-2-2】程序的分界符‘{’和‘}’应独占一行,‘}’同时与引用它们的语句左对齐。{}之内的代码块使用缩进规则对齐。【规则3-2-3】多维的数组如果在定义时初始化,按照数组的矩阵结构分行书写。编码规范细则_Java第8页共37页8{3,9,27},{4,16,64}};正例:width=50;length=20;height=40;3.3空行空格说明:空行起着分隔程序段落的作用。适当的空行可以使程序的布局更加清晰。正例:voiddoSomething(){//[doSomething实现代码]}//空一行voiddoOtherThing(){[doOtherThing实现代码]}反例:voiddoSomething(){[doSomething实现代码]}voiddoOtherThing(){[doOtherThing实现代码]}//两个函数的实现是两个逻辑程序块,应该用空行加以分隔。正例:!value~value++countnumber[i]=5;box.getWidth();【建议3-2-1】相关的赋值语句等号对齐。【规则3-3-1】不同逻辑程序块之间要使用空行分隔。【规则3-3-2】一元操作符如“++”、“--”、“!”、“~”、(类型)等前后不加空格。“[]”“.”这类操作符前后不加空格。【规则3-3-3】多元运算符和它们的操作数之间至少需要一个空格。编码规范细则_Java第9页共37页9说明:空格的多少根据上下文调整。正例:value=oldValue;total+value;number+=2;说明:方法名后紧跟左括号‘(’。正例:例子中的凵代表空格。for(i凵=凵0;凵i凵凵MAX_BSC_NUM;凵i++){doSomething(width,凵height);}3.4断行说明:断行方法:1.在逗号后断行2.在操作符前断行3.较高级别断行优于较低级别的断行对齐方法:1.将新行与同一级别的先前行的表达式的起始端对齐。2.条件表达式的续行在第一个条件处对齐。3.for循环语句的续行在初始化条件语句处对齐。4.函数调用和函数声明的续行在第一个参数处对齐。5.赋值语句的续行应在赋值号处对齐。6.如果上述规则导致代码排列混乱或代码左边界少于两个缩进,可用两倍缩进替代。下面是一些断行方法调用的示例:正例:someMethod(longExpression1,longExpression2,longExpression3,longExpression4,longExpression5);var=someMethod1(longExpression1,someMethod2(longExpression2,longExpression3));【规则3-3-4】方法名之后不要留空格。【规则3-3-5】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。‘,’之后要留空格。‘;’不是行结束符号时其后要留空格。【规则3-4-1】长表达式(超过120列)要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作