已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java编码规范,JAVA小课堂,目录,概述文件体系结构文件命名规则排版规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,编码规范的重要性:,编码规范对于程序员而言尤为重要,有以下几个原因:1.一个软件的生命周期中,80%的花费在于维护2.几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护3.规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的设计和代码4.良好的编码规范可以有效避免一些低级错误,JAVA小课堂,1.概述,JAVA小课堂,范围:定义了编写Java代码时应遵守的规则和习惯。提供编写代码的命名规则和习惯。术语:规则:强制必须遵守的原则。是在编码中必须满足遵守的。建议:必须加以考虑的原则,无标注的视为建议。是一些经验性的规范,虽然不是必须遵守,但是建议大家遵守。说明【】:对规则或建议的必要解释。示例:对规则或建议给出的例子。,目的:,统一规范,方便阅读、维护,提高代码质量统一格式,使代码度量更加精确,为进入公司书写良好有效代码打好基础要求从今天开始所有书写的代码都要按照PPT的规范书写,编写的程序必须尽全力满足编码规范要求。,JAVA小课堂,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,2.文件结构规则,JAVA小课堂,规则-包和引入语句先写包语句,再写引入语句。package行和import行之间留一行空行。引入的标准包名要在本地包名之前,并且包名按照字母顺序排列。如果import行中包含了同一个包中的类超过5个,则用*来处理。import的标准包和本地包之间留一行空行。示例:,packagecom.sitech.crmpd.core.codegen;importjava.io.*;importjava.sql.DatabaseMetaData;importjava.sql.ResultSet;importcom.sitech.crmpd.core.config.Config;importcom.sitech.crmpd.core.jdbc.ConnectionFactory;,JAVA小课堂,规则-类变量的声明规则-变量、常量的注释应放在其上方相邻位置或右方,例如:规则-用递增的方式写构造器(比如:参数多的写在后面)规则-类变量的存取方法:get和set方法规则-如果定义main()方法,必须将main方法写在类的底部,Stringusernamexyz;/用户姓名/用户姓名Stringusernamexyz;,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,3.1-1命名总则,JAVA小课堂,规则-使用可以准确说明变量/字段/类/接口/包等的完整的英文描述符。例如,采用类似firstName,allUsers这样的名字,严禁使用汉语拼音及不相关单词命名。规则-采用该领域的术语。如果用户称他们的客户(clients)为顾客(customers),那么就采用术语Customer来命名这个类,而不用Client。规则-尽量少用缩写,但如果一定要使用,当使用公共缩写和习惯缩写等。如实现(implement)可缩写成impl,经理(manager)可缩写成mgr等,严禁滥用缩写。,3.1-2命名总则,JAVA小课堂,规则-避免使用长名字(最好不超过25个字母)。规则-避免使用相似或者仅在大小写上有区别的名字。规则-避免使用数字,但可用2代替two,用4代替four。如:p2p,map4map等。规则-命名时应使用复数来表示它们代表多值。如:orderItems,others等。,3.2命名空间,JAVA小课堂,规则-Java文件名所有单词首字母大写。规则-包名一般以项目或模块名命名,少用缩写和长名,一律小写。规则-不要用java,javax作为自定义包的前缀规则-基本包:如cn.tedu(一般为公司域名倒写),所有包、文件都从属于此包。不得将类直接定义在基本包下。规则-每个产品/项目都有一个独立命名空间,如:cn.tedu.xxx下xxx代表某个产品或产品缩写,全局唯一;禁止将类文件直接放在cn.tedu.下。,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,4.1方法排版规则,规则-方法名和其后的括弧之间不应有空格示例:intgetResult(intforInt,charforChar)规则-缩进采用4个空格注意:一定要使用空格键。这样可以避免使用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐。规则-在方法的局部变量声明和其它语句之间加一个空行,voidmethod1()/声明intanInt=0;StringaString=null;ObjectanObj=null;/语句if(condition),JAVA小课堂,4.2-1语句排版规则,规则-简单语句每行至多包含一条语句规则-左大括号应位于复合语句起始行的行尾;右大括号应另起一行并与复合语句首行对齐。规则-必须用和将if内的语句括起来。(即使只有一条语句的情况下),argv+;/正确argc-;/正确argv+;argc-;/不允许这样使用!,for(initialization;condition;update)statements;,正确:if(condition)System.out.println(“正确”);,错误:if(condition)System.out.println(“错误”);,JAVA小课堂,规则-在多层嵌套的if语句中,需以尾端注释的方式表示出层次关系规则-for语句中的表达式要用空格分开示例:for(expr1;expr2;expr3)规则-在多层嵌套的for语句中,应以尾端注释的方式表示出层次关系规则-每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释。下面的示例代码中就包含注释/*fallsthrough*/,4.2-2语句排版规则,JAVA小课堂,示例:,一个switch语句应该具有如下格式:switch(condition)caseABC:statements;/*fallsthrough*/caseDEF:statements;break;caseXYZ:statements;break;default:statements;break;,JAVA小课堂,建议-关键词for和后面的括号之间加一个空格建议-关键词while和后面的括号之间加一个空格建议-关键词switch和后面的括号之间加一个空格建议-关键词catch和后面的括号之间加一个空格,JAVA小课堂,4.3表达式排版规则,规则-左括号和后一个字符之间不应该出现空格,同样,右括号和前一个字符之间也不应该出现空格规则-用空格分隔所有的二元运算符(除了.)和操作数示例:规则-一元操作符和操作数之间不加空格一元操作符包括负号(-)、自增(+)、自减(-)。示例:规则-强制转型后要跟一个空格示例:,a=(a+b)/(c*d);,i+;j-;,myMethod(byte)aNum,(Object)x);myMethod(int)(cp+5),(int)(i+3)+1);,JAVA小课堂,建议-单行不应超过80个字符断行的原则是:在逗号后。在操作符前。所断的行之间要对齐。,someMethod(longExpression1,longExpression2,longExpression3,longExpression4,longExpression5);longName1=longName2*(longName3+longName4-longName5)+4*longname6;/更好一些longName1=longName2*(longName3+longName4longName5)+4*longname6;/避免这样使用,JAVA小课堂,示例:,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,5.1类注释规则,规则-使用JavaDoc(文档注释),列出功能、版本信息、日期、作者和版权声明/*这是文档注释符*/规则-如果对文件进行了修改,必须说明修改目的、修改日期、修改人,并变更版本信息示例1:示例2:,/*Title:缴费*Description:缴费*Copyright:Copyright(c)2006*Company:*authorxxxx*version1.0*/,/*Title:缴费*Description:缴费*Copyright:Copyright(c)2006*Company:*authorxxxx*version1.0*修改日期修改人修改目的*/,JAVA小课堂,5.2类方法注释规则,规则-使用JavaDoc(文档注释)。示例:规则-用中文写出每个参数和返回值的含义,/*paramCustID:客户ID*return返回用户的单位信息*throwsException*/,JAVA小课堂,5.3块(多行)注释规则,规则-方法内部的块(多行)注释位于所描述内容之前规则-块(多行)注释之前留一行空行块(多行)注释的格式如下:示例:块(多行)注释和所描述代码具有一样的缩进格式。,方法内容/*这里是块(多行)注释*/方法内容,JAVA小课堂,5.4单行注释规则,规则-单行注释位于所描述内容之前规则-单行注释之前留一行空行单行注释的格式如下:示例:规则-单行注释和所描述代码具有一样的缩进格式规则-注释不能在一行写完时,就采用块注释,其它代码/这里是单行注释,被注释内容,JAVA小课堂,5.5尾端注释规则,规则-对变量或常量的简短注释在代码右端规则-代码和尾端注释之间留有足够多的空白尾端注释的格式如下:示例:尾端注释采用单行注释。,Stringname=null;/这里是尾端注释,JAVA小课堂,5.6代码中需要文档化的部分,参数参数类型用于做什么一些相关约束、限制或者是前置条件(preconditions)复杂的情况下,还需包含一个示例以助说明。变量描述说明复杂的情况下,需要给出一个使用例子。示例:,/*Theuniqueidentifierofcurrentrecord.*ThisvariableisalsotheprimarykeyfortheEnterpriseBean.*/publicStringlogID;,JAVA小课堂,类类说明(包括:作者、时间、类功能、目的等)已知的bug该类的开发/维护历史示例:,/*LogBeanisanEntityBean,itrepresentaaccessrecord.*ThisEJBeanillustrates:*Bean-managedpersistenceandContainer-Managedtransactions,*thecodeinthisfiledirectlyaccessesthedatastorage.*seeLogInterface*version1.0May.42000*authorSteveLiu*/,JAVA小课堂,接口接口说明(包括:作者、时间、类功能、目的等)该接口应如何使用局部变量它的用法/目的方法该方法做什么以及为什么这样做该方法的传入参数说明该方法的返回说明已知的bugs该方法所抛出的异常说明该方法中代码更新的历史记录该方法如何调用前置条件(pre-condition)/后置条件(post-condition)说明方法内部注释方法内部变量说明复杂的逻辑部分的代码注释,JAVA小课堂,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,6.1包命名规则,规则-包的名字全部小写基本的包按如下方式组织和命名:.示例:mon根目录和一级目录必须使用com.sitech,JAVA小课堂,6.2类命名规则,规则-类名用英文名称,不用汉语拼音。例如:客户(Customer),而不是KeHu规则-类名是名词,采用大小写混合的方式,每个单词的首字母大写规则-类名不要用复数规则-类名不要以“A”,“An”或“The”开头规则-使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)示例:,classPayCostAction;classBaseAction;,JAVA小课堂,6.3接口命名规则,规则-接口的规则与类相同规则-接口名前面加“I”示例:,interfaceIClient,JAVA小课堂,6.4方法命名规则,规则-方法名是动词名词对,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写,JAVA小课堂,6.5方法的参数命名规则,规则-使用全英文命名。首字母小写,后续单词首字母大写示例:,customer,account,-or-aCustomer,anAccount,6.6变量命名规则,规则-变量名采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写规则-除一次性的临时变量(如for循环变量)以外,不能用单个字符的变量名规则-如果变量名代表容器/集合(collection),如Array,Vector等,在变量名后加“List”,JAVA小课堂,6.7常量命名规则,规则-类常量全部用大写字母,单词间用下划线隔开示例:,staticfinalintMIN_WIDTH=4;staticfinalintMAX_WIDTH=999;,JAVA小课堂,6.8数组命名规则,规则-将放在类型后示例:,规范:bytebuffer;非规范:bytebuffer;,6.9Booleangetter方法命名规则,规则-所有布尔型get方法必须用单词”is”作为前缀。”is”为小写,后续单词首字母大写,其余字母小写示例:,isPersistent()isString()isDirty(),JAVA小课堂,6.10Getter方法命名规则,规则-方法名以“get”为前缀,后加变量名示例:,getFirstName()getLastName()getWarpSpeed(),JAVA小课堂,6.11Setter方法命名规则,规则-方法名以“set”为前缀,后加变量名示例:,setFirstName()setLastName()setWarpSpeed(),6.12构造方法命名规则,Customer()CustomerInfo(),JAVA小课堂,规则-构造方法使用类名,与类同名示例:,6.13异常命名规则,规则-异常实例名使用字母“e”来命名规则-异常类名使用以“Exception”结尾的示例:,SQLExceptionsqleProcessingExceptionMyException,JAVA小课堂,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,变量,规则-不要将不同类型变量的声明放在同一行一行声明一个变量规则-提供对实例以及类变量的get和set方法若没有足够理由,不要把实例或类变量声明为公有。规则-不要在一个语句中给多个变量赋相同的值示例:fooBar.fChar=barFoo.lchar=c;/不要这样使用!,JAVA小课堂,规则-不要将赋值运算符用在容易与相等关系运算符混淆的地方示例:规则-局部变量不要和公共变量同名规则-声明变量的同时对变量进行初始化,if(c+=d+)/不要这样使用.if(c+=d+)!=0).,JAVA小课堂,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,方法,规则-用注释详细说明每个参数的作用、取值范围及参数间的关系建议-方法的规模限制在200行以内建议-一个方法仅完成一件功能建议-为简单功能编写方法建议-不要设计多参数方法,去掉不使用的参数建议-方法的返回值要清楚、明了,让使用者不容易忽视错误情况建议-减少方法本身或方法内的递归调用,JAVA小课堂,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则变量方法可读性程序效率质量保证附录A,JAVA小课堂,可读性,规则-用括号明确表示出表达式的优先级,避免使用默认优先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浆染联合机挡车工设备安全技术规程
- 激光加工设备装调工设备技术规程
- 公司农作物种植技术员工艺作业技术规程
- 水电安装施工组织设计
- 四年级儿童心理导航
- 广东省湛江市雷州市四校2025届九年级下学期中考三模数学试卷(含解析)
- 非金属及其化合物(讲义)-高考化学二轮复习
- 2025福建漳州市龙海区嘉达出行服务有限公司招聘10人笔试历年参考题库附带答案详解
- 2025下安徽省水利水电勘测设计研究总院股份有限公司校园招聘笔试历年参考题库附带答案详解
- 2025湖南高速工程咨询有限公司招聘劳务派遣员工12人笔试历年参考题库附带答案详解
- 分红股东合伙协议书
- DL∕T 5210.2-2018 电力建设施工质量验收规程 第2部分:锅炉机组
- 附件:《房屋市政工程施工安全日志(范本)》
- 高中生物《第3章 细胞的基本结构》单元检测试卷及答案解析
- HGT 20580-2020 钢制化工容器设计基础规范
- 《养老护理员》-课件:为老年人翻身、扣背促进排痰
- 《神笔马良》课本剧剧本
- 钢厂发货员述职报告
- 无人机反制系统方案
- 化橘红知识讲座
- 40篇英语短文搞定高考3500个单词(全部)
评论
0/150
提交评论