版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/1编码书写规范-Java目录1.命名约定11.1.一般概念1.2.示范112.注释约定32.1.一般概念2.2.示范2.3.注释哪些部分4453.文件样式约定53.1.JAVA(*.JAVA)3.1.1.版权信息3.1.2.PACKAGE/IMPORTS5553.1.3.CLASS63.1.4.CLASSFIELDS63.1.5.存取方法(类的设置与获取成员函数)3.1.6.构造函数3.1.7.克隆方法3.1.8.类方法(类的普通成员函数)3.1.9.TOSTRING方法3.1.10.MAIN方法3.2.JAVASERVERPAGE(*.JSP)3.2.1.版本信息3.2.2.TAG7778889993.2.3.定义3.2.4.值输出3.2.5.嵌入代码段1010104.其它代码书写风格约定114.1.文档化4.2.缩进4.3.页宽4.4.{}对4.5.括号4.6.运算符4.7.参数之间111111111112124.8.JSP文件命名4.9.SERVLET类命名12125.附件125.1.使用方法13-1-1.命名约定除了以下几个特例之外,命名时应始终采用完整的英文描述符。
此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。
1.1.一般概念尽量使用完整的英文描述符采用适用于相关领域的术语采用大小写混合使名字可读尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一避免使用长的名字(尽量小于25个字母)避免使用类似的名字,或者仅仅是大小写不同的名字避免使用下划线(除静态常量等)1.2.示范包(Package)采用完整的英文描述符,应该都是由小写字母组成,格式为com.dcosft.*。
如:
com.dcsoft.ework.workflowcom.dcsoft.commonscom.dcsoft.utility类(Class)采用完整的英文描述符,所有单词的第一个字母大写,在上下文语境允许的情况下,可以使用缩略词,但必须保证整个开发小组的一致性,比如:
number可缩写为num。
如:
接口(Interface)采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。
在接口名称的最前面使用大写的I表明这是一个接口。
习惯上,CustomerSavingsAccount-2-名字后面加上后缀able,ible或者er,但这不是必需的。
如:
组件/部件(Component)使用完整的英文描述来说明组件的用途,前端加上组件类型。
如:
异常(Exception)采用异常类型的各单词首字母表示异常。
如:
字段/属性字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。
实参/参数同字段/属性的命名规则局部变量同字段/属性的命名规则获取成员函数被访问字段名的前面加上前缀get。
布尔型的获取成员函数所有的布尔型获取函数必须用单词is做前缀。
设置成员函数被访问字段名的前面加上前缀set。
IContactableIPrompterbtnOKlstCustomermenuFileExcpetioneIOExceptionioefirstNamelastNamepublicvoidsetFirstName(StringfirstName){this.firstName=firstName;}getFirstName()getLastName()isPersistent()isString()-3-普通成员函数采用完整的英文描述说明成员函数功能,第一个单词尽可能采用一个生动的动词,第一个字母小写。
静态常量字段(staticfinal)全部采用大写字母,单词之间用下划线分隔。
循环计数器通常采用字母i,j,k,m,n或者counter都可以接受。
数组数组数组应该总是用下面的方式来命名:
objectType[]variant,不得使用objectTypevariant[]方式。
对象实例同组件/部件2.注释约定一个很好的可遵循的有关注释的经验法则是:
问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。
setFirstName()setLastName()setWarpSpeed()openFile()addAccount()MIN_BALANCE,DEFAULT_DATEi,j,km,n,counterint[]arrInt;;String[]args;byte[]arrBuffer;StringBuffersbContent;-4-2.1.一般概念注释应该增加代码的清晰度保持注释的简洁在写代码之前写注释注释出为什么做了一些事,而不仅仅是做了什么2.2.示范文档注释在紧靠接口、类、成员函数和字段声明的前面注释它们。
C语言风格采用C语言风格的注释去掉不再使用但你仍想保留的代码。
仍想保留是因为用户万一会改变想法,或者在调试过程中想让它暂时失效。
单行在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。
注释符//后必须紧跟一个空格,然后才是注释信息。
即约定主要的说明性注释使用文档注释;C风格注释只用来标注过期不用的代码;单行注释用来标注一些简单却容易混淆的逻辑,比较长的单独作为一行,较简洁的可以放在代码行尾。
/**客户:
客户是我们将服务和产品卖给的人或机构。
*/Stringcustomer;/*这部分代码因为已被它之前的代码取代,由B.Gustafsson,*于1999年6月4日注释掉。
如果两年之后还未使用,将*其删除。
...*(源代码)*///遵照Sarek的规定,给所有//超过$1000的发货单//打5%的折扣。
让利活//动于1995年2月开始.-5-2.3.注释哪些部分类:
类的目的、即类所完成的功能,注释出采用的不变量。
接口:
设置接口的目的、它应如何被使用以及如何不被使用。
成员函数注释:
对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;普通成员函数内部注释:
控制结构,代码做了些什么以及为什么这样做,处理顺序等。
实参/参数:
参数含义、及其它任何约束或前提条件字段/属性:
字段描述局部变量:
无特别意义的情况下不加注释3.文件样式约定3.1.Java(*.java)所有的Java(*.java)文件都必须遵守如下的样式规则:
3.1.1.版权信息版权信息必须在java文件的开头,比如:
其他不需要出现在javadoc的信息也可以包含在这里。
3.1.2.Package/Importspackage行要在import行之前,import中标准的包名要在本地的包名之前,而且按照字母顺序排列。
如果import行中包含了同一个包中的不同子目录,则应该用*来处理。
/***Copyright2005ShandongSuccessSoftCo.Ltd.*Allrightreserved.*/-6-这里java.io.*是用来代替InputStreamandOutputStream的。
3.1.3.Class接下来的是类的注释,一般是用来解释类的,包含版本信息。
接下来是类定义,包含了在不同的行的extends和implements3.1.4.ClassFields接下来是类的成员变量:
public的成员变量必须生成文档(JavaDoc)。
proceted、private和package定义的成员变量如果名字含义明确的话,可以没有注释。
packagehotlava.net.stats;importjava.io.*;importjava.util.Observable;importhotlava.util.Application;/***pTitle:文件名称/p*pDescription:类内容的简介/p*pb更新记录:
/b*格式:[更新日期][修改的版本][操作人]内容br*[2005-06-28][1.0][张三]完善create方法。
br*/p*pCopyright:Copyright(c)2005/p*pCompany:山东软件有限公司/p*@version:1.1*/publicclassCounterSetextendsObservableimplementsCloneable{}/***Packetcounters*/protectedint[]packets;-7-3.1.5.存取方法(类的设置与获取成员函数)接下来是类变量的存取的方法。
它只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上,如类的成员变量已经有注释,类变量的存取方法可以没有注释。
要求说明的是,对于集合,加入成员函数来插入和删除项;另其它的方法不要写在一行上。
3.1.6.构造函数接下来是构造函数,它应该用递增的方式写(比如:
参数多的写在后面)。
3.1.7.克隆方法如果这个类是可以被克隆的,那么下一步就是clone方法:
publicint[]getPackets(){returnthis.packets;}publicvoidsetPackets(int[]packets){this.packets=packets;}publicCounterSet(){this.size=100;}publicCounterSet(intsize){this.size=size;}-8-3.1.8.类方法(类的普通成员函数)下面开始写类的方法:
3.1.9.toString方法一般情况下,每一个类都应该定义toString方法:
3.1.10.main方法普通类,考虑置入一个main()方法,其中包含用于测试那个类的代码,如果包含了main()方法,那么它应该写在类的底部。
publicObjectclone(){try{}catch(CloneNotSupportedExceptione){}}/***Setthepacketcounters*paramr1-*paramr2-**/protectedfinalvoidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)throwsIllegalArgumentException{//Ensurethearraysareofequalsize}publicStringtoString(){}-9-3.2.JavaServerPage(*.jsp)所有的Jsp(*.jsp)文件都必须遵守如下的样式规则:
3.2.1.版本信息文件开头应有一个文件的版本注释,格式为3.2.2.tag关键tag的书写顺序为注意事项使用国标扩展字符集(GBK)作为content的charsetcontentType在被包含的文件一定不能写,而其他文件一定要写建议用以下两种格式:
%--Copyright:
Copyright2005--%%--Company:
山东软件有限公司--%%功能简介:
对这一个实现的功能作一个简介。
传入参数:
列出该页接收的所有参数传入参数的说明,以及没有接收到参数的处理方式如果有session,列出所有的session,然后说明session,以及session的影响%%--Version:
版本号--%%--[更新日期][修改的版本][操作人]内容--%%@pageimport=%jsp:useBeanid=scope=class=/%@includefile=%%@pageContentType=text/html;charset=GBK%-10-tag一律用小写,属性的值用双引号引起来。
出错信息定向到公用的出错页面3.2.3.定义在JSP中定义方法或类变量时使用单独行%!开头,单独行%结尾,注释参见2,代码块缩进参见4.2。
3.2.4.值输出输出值时使用%=value%。
3.2.5.嵌入代码段使用单独行%开头,单独行%结尾,注释参见2,代码块缩进参见4.2。
%@pageimport=java.util.*,java.sql.*%%--多个import之间用逗号隔开,结尾不要分号--%%@pageimport=java.util.*%%@pageimport=java.sql.*%%--所有的import均分开写--%%!/**userId*/privateStringuserId;/***isValidData*/privatebooleanisValidData(){}%%for(inti=0;i10;i++){out.println(i);}%-11-4.其它代码书写风格约定4.1.文档化必须用javadoc来为类生成文档。
不仅因为它是标准,这也是被各种java编译器都认可的方法。
使用@author标记是不被推荐的,因为代码不应该是被个人拥有的。
4.2.缩进缩进应该是每行3个空格。
不要在源文件中保存Tab字符,在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度。
4.3.页宽页宽应该设置为80字符。
源代码一般不会超过这个宽度,并导致无法完整显示,但这一设置也可以灵活调整。
在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行。
一条语句折行后,应该比原来的语句再缩进3个字符。
4.4.{}对{}中的语句应该单独作为一行。
例如:
4.5.括号左括号和后一个字符之间不应该出现空格;同样,右括号和前一个字符之间也不应该出现空格。
例如:
if(i0){i++;}CallProc(AParameter);//不符合规范CallProc(AParameter);//符合规范-12-不要在语句中使用无意义的括号,括号只应该为达到某种目的而出现在源代码中。
4.6.运算符每个运算符与两边的字符之间都应该有一个空格。
4.7.参数之间多个参数之间的,应紧跟前面的参数,与后面的参数之间有一个空格。
4.8.JSP文件命名采用完整的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老院老人家庭沟通制度
- 数码产品租赁合同(2篇)
- 2024年物业设施管理合同3篇
- 2025年平顶山货运驾驶员从业资格证考试题库答案
- 2025年林芝货运从业资格证模拟考试下载
- 2025年怀化经营性道路客货运输驾驶员从业资格考试
- 《催眠治疗》课件
- 2024年教育设施融资租赁担保合同示例2篇
- 2025年东莞a2驾驶证货运从业资格证模拟考试
- 2024年版矿业开发合同
- 《复杂网络入门必读》课件
- 国开《小学数学教学研究》形考期末大作业答案
- 仓库管理培训课件
- 传感器基础知识单选题100道及答案解析
- 总裁秘书劳动合同模板
- 传播学概论习题与参考答案
- 政治-湖南省长沙市(炎德英才大联考)长郡中学2025届高三上学期月考试卷(三)试题和答案
- 2023级《中国特色社会主义》学习通超星期末考试答案章节答案2024年
- 2024年学校联席会议制度范例(五篇)
- 瑞士万通831KF卡尔费休水分测定仪干货-库仑法
- 广东省肇庆市2023-2024学年高二上学期期末教学质量检测试题 化学 含解析
评论
0/150
提交评论