当前位置:文档之家› JAVA源代码规范

JAVA源代码规范

JAVA代码规范(初稿)2004、4⏹版本更新信息本版本创建/修改、维护、批准涉及人员如下:创建/修改者:XX维护者:XX批准者:XX具体版本更新记录如表1-1:表1-1 版本更新记录修改方式:A-增加 M-修改 D-删除⏹目得本文提供一整套编写高效可靠得 Java 代码得标准、约定与指南。

它们以安全可靠得软件工程原则为基础,使代码易于理解、维护与增强灵活性。

通过遵循一套通用得程序设计标准,显著提高 Java 软件开发者得生产效率,为开发团队得程序设计带来更大得一致性,使软件开发团队得效率明显提高。

⏹规范得执行本文档适用于公司内进行软件开发得所有技术人员,即公司内软件开发人员编写得所有源代码都必须遵循本规范。

除临时性项目之外得任何项目均应严格按照此标准执行,“临时性项目”指:➢为市场推广目得而编写得示程序➢为一次性用途而编写得临时性小程序为学习目得而编写得测试程序⏹文档类别本文档属标准规范类得项目限制级文档,未经总经理及总经理授权人员批准,不得提供公司以外得人员阅读与使用。

⏹版本更新条件本文档得定期评审时间为每年得1月,评审及修订步骤依据SEPG工作规范规定。

此外,如遇下列条件可进行评审,并根据评审结果决定就是否需要进行修订:➢本文档所列得引用得标准已经更新。

➢本文档得使用者若对本文档有任何评论、建议或意见,请通过企业内部网络发电子邮件给SEPG,所收到得电子邮件将会在评审与修订时给予充分得考虑。

⏹使用对象本文档得使用对象包括:➢项目管理者➢质量保证人员➢软件开发人员目录1介绍 (4)1、1为什么要有编码规范 (4)2通用代码格式 (4)2、1文件组织 (4)2、2缩进 (5)2、3行长度 (6)2、4换行 (6)2、5空行 (7)2、6空格 (7)2、7注释 (8)2、7、1注释约定 (8)2、7、2实现注释得格式 (9)2、7、3文档注释 (10)2、7、4快速浏览javadoc (10)2、8声明 (11)2、8、1每行声明变量得数量 (11)2、8、2初始化 (11)2、8、3布局 (11)2、8、4类与接口得声明 (12)2、9语句 (12)2、9、1简单语句 (12)2、9、2复合语句 (13)2、9、3返回语句 (13)2、9、4if,if-else,if else-if else语句 (13)2、9、5for语句 (13)2、9、6while语句 (14)2、9、7do-while语句 (14)2、9、8switch语句 (14)2、9、9try-catch语句 (14)2、10SQL (15)3命名规范 (15)3、1总则 (15)3、2项目命名 (16)3、3命名规则 (16)3、4变量命名机制 (17)3、4、1基本类型变量命名规则:变量类型标识+逻辑名 (17)3、4、2一般常用对象命名规则 (18)3、4、3临时变量命名规则 (18)3、4、4全局变量、成员变量、局部变量命名规则 (18)3、4、5常量命名机制 (19)3、5HTML元素变量命名机制 (19)3、6JSP文件命名机制 (19)4类、接口、包与编译单元得标准 (19)4、1类得标准 (19)4、1、1命名类 (19)4、1、2注释类 (20)4、2接口标准 (21)4、2、1命名接口 (21)4、2、2注释接口 (21)4、3包得标准 (21)4、3、1命名包 (21)4、3、2注释包 (21)4、4编译单元标准 (22)4、4、1命名编译单元 (22)4、4、2注释编译单元 (22)5字段标准(字段/属性) (22)5、1字段可见性 (22)5、2注释一个字段 (23)5、3使用存取成员方法 (23)5、3、1存取函数得可见性 (24)5、3、2一定要初始化静态字段 (24)6成员函数与方法标准 (24)6、1命名函数与成员方法 (24)6、2命名存取成员函数与方法 (24)6、3命名构造函数 (25)6、4成员函数与方法得可见性 (25)6、5成员函数与方法参数标准 (26)6、5、1命名参数 (26)6、5、2注释参数 (26)6、6注释成员函数与方法 (26)7编程惯例 (28)7、1提供对实例以及类变量得访问控制 (28)7、2引用类变量与类方法 (28)7、3常量 (28)7、4变量赋值 (28)8其它惯例 (29)8、1圆括号 (29)8、2返回值 (29)8、3条件运算符"?"前得表达式 (29)8、4特殊注释 (30)9代码范例 (30)9、1源文件范例 (30)10缩写说明 (31)11参考资料 (31)1介绍1.1为什么要有编码规范编码规范对于程序员而言尤为重要,有以下几个原因:➢一个软件产品得80%得生命期就是在维护。

➢几乎没有一个软件在它得整个生命期里都就是被它得作者来维护得。

➢使用好得风格提高了软件得可维护性。

➢如果源代码与软件产品就是捆绑给客户得,作为产品得剩余部分,它应该有好得分包(well-packaged),足够清晰与专业得代码。

2通用代码格式2.1文件组织一个文件由被空行分割而成得段落以及标识每个段落得可选注释共同组成。

超过2000行得程序难以阅读,应该尽量避免。

Java源文件必须遵循以下规则:➢文件头部注释所有得源文件都应该在开头有一个C语言风格得注释,其中列出文件名、作者、公司、日期、描述、修改说明与版权声明:/** File: OrderSessionBean、java* Author: wangxie* Version: 1、1* Date: 06/04/2004* Modify:* Description:* Copyright notice*/➢包与引入语句在Java源文件中,第一个非注释行就是Package语句。

Package 行要在 Import 行之前,Import 中标准得包名要在本地得包名之前,而且按照字母顺序排列。

例如:package java、awt;import java、awt、peer、CanvasPeer;import java、io、InputStream;import cn、edu、cuit、TestApplication;➢类与接口声明2.2缩进4个空格常被作为缩进排版得一个单位,以表示缩进,显示程序得层次级别,增加程序得可读性。

不要在源代码中保留tab字符,这就是因为tab字符会随着不同用户得不同设置与不同得资源管理工具(打印、文档、版本控制等)而代表不同得宽度。

2.3行长度尽量避免一行得长度超过80个字符,因为很多终端与工具不能很好处理之。

注意:用于文档中得例子应该使用更短得行长,长度一般不超过70个字符。

2.4换行当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:➢在一个逗号后面断开➢在一个操作符前面断开➢宁可选择较高级别(higher-level)得断开,而非较低级别(lower-level)得断开➢新得一行应该与上一行同一级别表达式得开头处对齐➢如果以上规则导致您得代码混乱或者使您得代码都堆挤在右边,那就代之以缩进8个空格。

以下就是断开方法调用得一些例子:someMethod(longExpression1, longExpression2, longExpression3,longExpression4, longExpression5);var = someMethod1(longExpression1,someMethod2(longExpression2,longExpression3));以下就是两个断开算术表达式得例子。

前者更好,因为断开处位于括号表达式得外边,这就是个较高级别得断开。

longName1 = longName2 * (longName3 + longName4 - longName5)+ 4 * longname6; //PREFFERlongName1 = longName2 * (longName3 + longName4- longName5) + 4 * longname6; //A VOID以下就是两个缩进方法声明得例子。

前者就是常规情形。

后者若使用常规得缩进方式将会使第二行与第三行移得很靠右,所以代之以缩进8个空格 //CONVENTIONAL INDENTATIONsomeMethod(int anArg, Object anotherArg, String yetAnotherArg,Object andStillAnother) {、、、}//INDENT 8 SPACES TO A VOID VERY DEEP INDENTSprivate static synchronized horkingLongMethodName(int anArg,Object anotherArg, String yetAnotherArg,Object andStillAnother) {、、、}if语句得换行通常使用8个空格得规则,因为常规缩进(4个空格)会使语句体瞧起来比较费劲。

比如://不要使用如下缩进if ((condition1 && condition2)|| (condition3 && condition4)||!(condition5 && condition6)) { //不好得换行doSomethingAboutIt(); //易使这行被忽视}//使用如下缩进if ((condition1 && condition2)|| (condition3 && condition4)||!(condition5 && condition6)) {doSomethingAboutIt();}//或者使用如下缩进if ((condition1 && condition2) || (condition3 && condition4)||!(condition5 && condition6)) {doSomethingAboutIt();}这里有三种可行得方法用于处理三元运算表达式:alpha = (aLongBooleanExpression) ? beta : gamma;alpha = (aLongBooleanExpression) ? beta: gamma;alpha = (aLongBooleanExpression)? beta: gamma;2.5空行空行将逻辑相关得代码段分隔开,以提高可读性。

下列情况应该总就是使用两个空行:➢一个源文件得两个片段(section)之间➢类声明与接口声明之间下列情况应该总就是使用一个空行:➢两个方法之间➢方法内得局部变量与方法得第一条语句之间➢块注释或单行注释之前➢一个方法内得两个逻辑段之间,用以提高可读性2.6空格下列情况应该使用空格:➢一个紧跟着括号得关键字应该被空格分开,例如:while (true) {、、、}注意:空格不应该置于方法名与其左括号之间。

相关主题