软件编程规范-Java(正式版)中兴软件技术(南昌)有限公司版权所有不得复制软件编程规范-Java篇第2页共36页修订记录日期修订版本描述修改人2006-03-08正式版完成编程规范小组软件编程规范-Java篇第3页共36页目录目录.......................................................................................................................................3前言.......................................................................................................................................41基本原则...............................................................................................................................52文件结构...............................................................................................................................62.1基本格式........................................................................................................................62.2对齐................................................................................................................................82.3空行空格........................................................................................................................92.4断行..............................................................................................................................113注释.....................................................................................................................................144命名规则.............................................................................................................................205声明.....................................................................................................................................266表达式与语句.....................................................................................................................277类和接口.............................................................................................................................31附录.......................................................................................................................................34附录A编程模版.............................................................................................................34参考文献.................................................................................................................................36软件编程规范-Java篇第4页共36页前言软件编程规范的目的是为了统一公司软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性,减少软件维护成本,最终提高软件产品生产力。本规范是针对JAVA语言的编程规则。本规范适用于公司所有产品的软件源程序,同时考虑到不同产品和项目的实际开发特性,本规范分成规则性和建议性两种:对于规则性规范,要求所有软件开发人员严格执行;对于建议性规范,各项目编程人员可以根据实际情况选择执行。本规范的示例都以JAVA语言描述。本规范的内容包括:基本原则、文件结构、注释、命名规则、声明、表达式与语句、类和接口等。规范最后给出了标准模板供软件人员参考。本规范由软件编程规范小组编写本规范自生效日期起,对以后新编写的和修改的代码有约束力。对以前的代码不要求进行修改。对于由开发工具自动生成的代码可以不约束。对本规范中所使用的术语解释如下:原则:编程时应该坚持的指导思想。规则:编程时必须遵守的约定。建议:编程时必须加以考虑的约定。说明:对此规则或建议的必要的解释。正例:对此规则或建议给出的正确例子。反例:对此规则或建议给出的反面例子。软件编程规范小组2006年3月8日软件编程规范-Java篇第5页共36页1基本原则说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力。说明:简单是最美。保持代码的简单化是软件工程化的基本要求。不要过分追求技巧,否则会降低程序的可读性。说明:编程时以公司的规范为准,公司的规范没有规定的内容参考上面的标准。说明:编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,其次考虑程序的效率和资源占用。说明:尽量选择可借用的代码,对其修改优化以达到自身要求。说明:事实上,我们无法做到完全消除错误,但通过不懈的努力,可以减少同样的错误出现的次数。【原则1-1】首先是为人编写程序,其次才是计算机。【原则1-2】保持代码的简明清晰,避免过分的编程技巧。【原则1-3】所有的代码尽量遵循SUN的《CodeConventionsfortheJavaTMProgrammingLanguage》标准(参见:)。【原则1-4】编程时首先达到正确性,其次考虑效率。【原则1-5】保持一致性,尽可能多的使用相同的规则。【原则1-6】尽可能复用、修正原有的代码。【原则1-7】尽量减少同样的错误出现的次数。软件编程规范-Java篇第6页共36页2文件结构程序布局的目的是显示出程序良好的逻辑结构,提高程序的准确性、连续性、可读性、可维护性。更重要的是,统一的程序布局和编程风格,有助于提高整个项目的开发质量,提高开发效率,降低开发成本。同时,对于普通程序员来说,养成良好的编程习惯有助于提高自己的编程水平,提高编程效率。因此,统一的、良好的程序布局和编程风格不仅仅是个人主观美学上的或是形式上的问题,而且涉及到产品质量,涉及到个人编程能力的提高,必须引起大家重视。2.1基本格式正例:packagecom.zte;importjava.awt.peer.CanvasPeer;importjava.io.*;importcom.zte.ums.uep.*;/***p文件名称:题目名称/p*p文件描述:本类描述/p*p版权所有:版权所有(C)2006/p*p公司:中兴软件技术(南昌)有限公司/p*p内容摘要://简要描述本文件的内容,包括主要模块、函数及其功能的说明/p*p其他说明://其它内容的说明/p*p完成日期://输入完成日期,例:2006年2月25日/p*p修改记录1://修改历史记录,包括修改日期、修改者及修改内容/p*pre*修改日期:*版本号:*修改人:*修改内容:*/pre*p修改记录2:…/p*@version1.0*@author作者姓名【规则2-1-1】源代码文件(.java)的布局顺序是:包、import语句、注释、类。软件编程规范-Java篇第7页共36页*/publicclassClassName{}说明:package语句其后可跟import语句,而且与package间隔一个空行。import包的排列顺序为java开头的包在最前面,接下来是引自外部的包,再接下来是应用程序自身的包,即import中标准的包名要在本地的包名之前,而且按照字母顺序排列。正例:packagecom.zte;importjava.awt.peer.CanvasPeer;//java自身的包importjava.io.*;importcom.klg.field.*;//第三方的包importcom.zte.ums.uep.*;//程序自身的包说明:包括空格在内不超过120列。说明:这样可以防止书写失误,也易于阅读。正例:if(varible1varible2){varible1=varible2;}反例:下面的代码执行语句紧跟if的条件之后,而且没有加{},违反规则。if(varible1varible2)varible1=varible2;【规则2-1-2】遵循统一的布局顺序来书写import语句,不同类别的import语句之间用空行分隔。【规则2-1-3】程序中一行的代码和注释不能超过120列。【规则2-1-4】if、else、elseif、for、while、do等语句独占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。软件编程规范-Java篇第8页共36页说明:这样便于程序阅读和查找。正例:length=10;width=5;//矩形的长与宽关系较密切,放在一起。strCaption=“Test”;反例:length=10;strCaption=“Test”;width=5;2.2对齐说明:对于利用JBuilder等编程工具的,可以设置TAB键为4个空格代替。消除不同编辑器对制表符处理的差异。说明:这样使代码便于阅读,并且方便注释。do…while语句可以例外,while条件可与}在同一行。正例:voidfunction(intvar){while(condition){doSomething();//与{}缩进4格}//与引用它们的模块左对齐}反例:voidfunction(intvar){while(condition){doSomething();}}〖建议2-1-1〗源程序中关系较为紧密的代码应尽可能相邻。【规则2-