欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    JAVA程序编码要求规范.docx

    • 资源ID:6345347       资源大小:25.02KB        全文页数:18页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA程序编码要求规范.docx

    1、JAVA程序编码要求规范JAVA程序编码规X1简介1.1目的本规X为一套编写高效可靠的 Java 代码的标准、约定和指南。它以安全可靠的软件工程原如此为根底,使代码易于理解、维护和增强,提高生产效率。同时,将带来更大的一致性,使软件开发团队的效率明显提高。1.2X围本规X应用于采用J2EE规X的项目中,所有项目中的JAVA代码含JSP,SERVLET,JAVABEAN均应遵守这个规X。同时,也可作为其它项目的参考。代码组织与风格1.3Tab一个Tab为4个空格长。1.4缩进一个代码块内的代码都应该统一的缩进一个Tab长度。1.5空行适当的增加空行,来增加代码的可读性。在如下情况下应该有两行空行

    2、: 同一文件的不同局部之间; 在类,接口以与彼此之间;在如下情况之间应该有一行空行:方法之间; 局部变量和它后边的语句之间; 方法内的功能逻辑局部之间;1.6代码块长度每个代码块尽量控制在1个屏幕之内,方便浏览。1.7行宽每行代码和注释不应超过70个字节或屏幕的宽度,如超过如此应换行,换行后的代码应该缩进8个字符。1.8空格括号和它里面的字符之间不应该出现空格。括号应该和它前边的关键词留有空格,如:while (true) ;但是方法名和左括号之间不应该有空格。参数之间的逗号后应该加一空格。如:method1(int i1, int i2)for语句里的表达式之间加一空格。如:for(expr

    3、1; expr2; expr3)二元操作符和操作数之间应该用空格隔开。如:i + c ;强制类型转换时,在类型和变量之间加一空格。如:(int) i ;注释1.9注释的根本约定注释应该增加代码的清晰度持注释的简洁,不是任何代码都需要注释的,过多的注释反而会影响代码的可读性。注释不应该包括其他的特殊字符。先写注释,后写代码1.10注释类型块注释:主要用来描述文件,类,方法,算法等。一般用在文档和方法的前面,也可以放在文档的任何地方。以/*开头,*/结尾。例:/* 注释*/行注释:主要用在方法内部,对代码,变量,流程等进展说明。与块注释格式相似,但是整个注释占据一行。例:/* 注释 */尾随注释:

    4、与行注释功能相似,放在代码的同行,但是要与代码之间有足够的空间,便于分清。例:int m=4 ; /* 注释 */如果一个程序块内有多个尾随注释,每个注释的缩进应该保持一致。行尾注释:与行注释功能相似,放在每行的最后,或者占据一行。以/开头。文档注释:与块注释相似,但是可以被javadoc处理,生成HTML文件。以/*开头,*/结尾。问挡住是不能放在方法或程序块内。例:/*注释*/1.11注释那些局部项目注释哪些局部实参/ 参数参数类型参数用来做什么任何约束或前提条件示例字段/ 字段/属性字段描述注释所有使用的不变量示例并行事件可见性决策类类的目的的问题类的开发/维护历史注释出采用的不变量并行

    5、策略编译单元每一个类/类内定义的接口,含简单的说明 文件名和/或标识信息信息接口目的它应如何被使用以与如何不被使用局部变量用处/目的成员函数注释成员函数做什么以与它为什么做这个哪些参数必须传递给一个成员函数成员函数返回什么的问题任何由某个成员函数抛出的异常可见性决策成员函数是如何改变对象的包含任何修改代码的历史如何在适当情况下调用成员函数的例子适用的前提条件和 后置条件成员函数内部注释控制结构代码做了些什么以与为什么这样做局部变量难或复杂的代码处理顺序2命名2.1命名的根本约定一般应该使用可以准确说明变量/字段/类的完整的英文描述符,如firstName。对一些作用显而易见的变量可以采用简单的

    6、命名,如在循环里的递增减变量就可以被命名为 i 。尽量采用项目所涉与领域的术语。可以采用大小写混合,提高名字的可读性。尽量少用缩写,但如果一定要使用,就要慎重地使用。同时,应该保存一个标准缩写的列表,并且在使用时保持一致。防止使用长名字最好不超过 15 个字母。防止使用相似或者仅在大小写上有区别的名字。防止使用下划线作为名字的首末字母。2.2标识符的命名约定标示符类型命名约定例子包全部小写。标识符用点号分隔开来。为了使包的名字更易读,Sun 公司建议包名中的标识符用点号来分隔。Sun 公司的标准 java 分配包用标识符 .java 开头。全局包的名字用你的机构的 Internet 保存域名开

    7、头。局部包:全局包:.rational. 类,接口类的名字应该使用名词。每个单词第一个字母应该大写。防止使用单词的错写,除非它的缩写已经广为人知,如HTTP。Class Hello ;Class HelloWorld ;Interface Apple ;方法第一个单词一般是动词。第一个字母是小些,但是中间单词的第一个字母是大写。如果方法返回一个成员变量的值,方法名一般为get+成员变量名,如假如返回的值是bool变量,一般以is作为前缀。如果方法修改一个成员变量的值,方法名一般为:set + 成员变量名。getName();setName();isFirst();变量第一个字母小写,中间单词的

    8、第一个字母大写。不要用_或&作为第一个字母。尽量使用短而且具有意义的单词。单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integers;c,d,e一般用于characters。如果变量是集合,如此变量名应用复数。命名组件采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表。String myName;int i;int n;char c;int students;btNew;(bt是Button的缩写)常量所有常量名均全部大写,单词间以_隔开。int MAX_NUM;3声明每行应该只有一个声明。局部变量必须初始化。除了for循环外,声明应该放在块的最开始局部。f

    9、or循环中的变量声明可以放在for语句中。如:for(int i =0;i10;i+) 。防止块内部的变量与它外部的变量名一样。表达式和语句3.1每行应该只有一条语句。3.2if-elseif-elseif语句,任何情况下,都应该有“,“,格式如下:if (condition) statements; else if (condition) statements; else statements;3.3for语句格式如下:for (initialization; condition; update) statements;如果语句为空:for (initialization; conditio

    10、n; update) ;3.4while语句格式如下:while (condition) statements;如果语句为空: while (condition);3.5do-while语句格式如下:do statements; while (condition);3.6switch语句每个switch里都应包含default子语句,格式如下:switch (condition)case ABC: statements; /* falls through */case DEF: statements; break;case XYZ: statements; break;default: sta

    11、tements; break;3.7try-catch语句格式如下:try statements; catch (ExceptionClass e) statements; finally statements;4错误处理和异常事件通常的思想是只对错误采用异常处理:逻辑和编程错误,设置错误,被破坏的数据,资源耗尽,等等。通常的法如此是系统在正常状态下以与无重载和硬件失效状态下,不应产生任何异常。异常处理时可以采用适当的日志机制来报告异常,包括异常发生的时刻。不要使用异常实现来控制程序流程结构。可移植性4.1尽量不要使用已经被标为不赞成使用的类或方法。4.2代码应遵循UNIX风格。4.3如果需要

    12、换行的话,尽量用 println 来代替在字符串中使用n。4.4用separator()方法代替路径中的/或 。4.5用pathSeptarator()方法代替路径中的 : 或 ; 。5Java文件样式所有的Java(*.java)文件都必须遵守如下的样式规如此5.1信息信息必须在java文件的开头,比如:/* * Title: 本文件的标题 * Description: 对本文件的描述 * Copyright: 信息 * pany: 公司名称 * author作者 Email * version版本号 */其他不需要出现在javadoc的信息也可以包含在这里。5.2Package/Impor

    13、tspackage行要在import行之前,import中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果import行中包含了同一个包中的不同子目录,如此应该用*来处理。如:package.stats;importjava.io.*;importjava.util.Observable;importhotlava.util.Application;这里java.io.*使用来代替InputStreamandOutputStream的。5.3Class接下来的是类的注释,一般用来解释类的作用。/*Aclassrepresentingasetofpacketandbytecounters

    14、*Itisobservabletoallowittobewatched,butonly*reportschangeswhenthecurrentsetisplete*/接下来是类定义,包含了在不同的行的extends和implements。一般应遵循extends在前,implements在后的原如此。如:publicclassCounterSetextendsObservableimplementsCloneable5.4ClassFields接下来是类的成员变量:/*Packetcounters*/protectedintpackets;public的成员变量必须生成文档JavaDoc。p

    15、roceted、private和package定义的成员变量如果名字含义明确的话,可以没有注释。5.5存取方法接下来是类变量的存取的方法。它只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上。/*Getthecounters*returnanarraycontainingthestatisticaldata.Thisarrayhasbeen*freshlyallocatedandcanbemodifiedbythecaller.*/publicintgetPackets()returncopyArray(packets,offset);publicintgetBytes()retur

    16、ncopyArray(bytes,offset);publicintgetPackets()returnpackets;publicvoidsetPackets(intpackets)this.packets=packets;其它的方法不要写在一行上。5.6构造函数接下来是构造函数,它应该用递增的方式写比如:参数多的写在后面。访问类型(public,private等.)和任何static,final或synchronized应该在一行中,并且方法和参数另写一行,这样可以使方法和参数更易读。public static CounterSet(intsize)this.size=size;5.7克隆

    17、方法如果这个类是可以被克隆的,那么下一步就是clone方法:publicObjectclone()tryCounterSetobj=(CounterSet)super.clone();obj.packets=(int)packets.clone();obj.size=size;returnobj;catch(CloneNotSupportedExceptione)thrownewInternalError(UnexpectedCloneNotSUpportedException:+e.getMessage();5.8类方法下面开始写类的方法: /* * Creates a new zip en

    18、try with the specified name. * * param name the entry name * exception NullPointerException if the entry name is null * exception IllegalArgumentException if the entry name is longer than * 0xFFFF bytes */public ZipEntry(String name) if (name = null) throw new NullPointerException(); if (name.length

    19、() 0xFFFF) throw new IllegalArgumentException(entry name too long); this.name = name; 5.9toString方法无论如何,每一个类都应该定义toString方法:publicStringtoString()Stringretval=CounterSet:;for(inti=0;idata.length();i+)retval+=data.bytes.toString();retval+=data.packets.toString();returnretval;5.10main方法如果main(String)方

    20、法已经定义了,那么它应该写在类的底部.程序编写规X5.11exit()exit除了在main中可以被调用外,其他的地方不应该调用。因为这样做不给任何代码代码机会来截获退出。一个类似后台服务地程序不应该因为某一个库模块决定了要退出就退出。异常申明的错误应该抛出一个RuntimeException或者派生的异常。顶层的main()函数应该截获所有的异常,并且打印或者记录在日志中在屏幕上。5.12垃圾收集JAVA使用成熟的后台垃圾收集技术来代替引用计数。但是这样会导致一个问题:你必须在使用完对象的实例以后进展清场工作。比如一个prel的程序员可能这么写:.FileOutputStreamfos=ne

    21、wFileOutputStream(projectFile);project.save(fos,IDEProjectFile);.除非输出流一出作用域就关闭,非引用计数的程序语言,比如JAVA,是不能自动完成变量的清场工作的。必须象下面一样写:FileOutputStreamfos=newFileOutputStream(projectFile);project.save(fos,IDEProjectFile);fos.close();5.13Clone下面是一种有用的方法:implementsCloneablepublicObjectclone()tryThisClassobj=(ThisC

    22、lass)super.clone();obj.field1=(int)field1.clone();obj.field2=field2;returnobj;catch(CloneNotSupportedExceptione)thrownewInternalError(UnexpectedCloneNotSUpportedException:+e.getMessage();5.14final类绝对不要因为性能的原因将类定义为final的除非程序的框架要求如果一个类还没有准备好被继承,最好在类文档中注明,而不要将她定义为final的。这是因为没有人可以保证会不会由于什么原因需要继承她。5.15访问

    23、类的成员变量大局部的类成员变量应该定义为protected的来防止继承类使用他们。注意,要用intpackets,而不是intpackets,后一种永远也不要用。publicvoidsetPackets(intpackets)this.packets=packets;CounterSet(intsize)this.size=size;6编程技巧6.1byte数组转换到characters为了将byte数组转换到characters,你可以这么做:Helloworld!.getBytes();6.2Utility类Utility类仅仅提供方法的类应该被申明为抽象的来防止被继承或被初始化。6.3初

    24、始化下面的代码是一种很好的初始化数组的方法:objectArguments=newObjectarguments;6.4枚举类型JAVA对枚举的支持不好,但是下面的代码是一种很有用的模板:classColourpublicstaticfinalColourBLACK=newColour(0,0,0);publicstaticfinalColourRED=newColour(0xFF,0,0);publicstaticfinalColourGREEN=newColour(0,0xFF,0);publicstaticfinalColourBLUE=newColour(0,0,0xFF);publi

    25、cstaticfinalColourWHITE=newColour(0xFF,0xFF,0xFF);这种技术实现了RED,GREEN,BLUE等可以象其他语言的枚举类型一样使用的常量。他们可以用=操作符来比拟。但是这样使用有一个缺陷:如果一个用户用这样的方法来创建颜色BLACKnewColour(0,0,0)那么这就是另外一个对象,=操作符就会产生错误。她的equal()方法仍然有效。由于这个原因,这个技术的缺陷最好注明在文档中,或者只在自己的包中使用。6.5Swing防止使用AWT组件混合使用AWT和Swing组件如果要将AWT组件和Swing组件混合起来使用的话,请小心使用。实际上,尽量不

    26、要将他们混合起来使用。滚动的AWT组件AWT组件绝对不要用JscrollPane类来实现滚动。滚动AWT组件的时候一定要用AWTScrollPane组件来实现。防止在InternalFrame组件中使用AWT组件尽量不要这么做,要不然会出现不可预料的后果。Z-Order问题AWT组件总是显示在Swing组件之上。当使用包含AWT组件的POP-UP菜单的时候要小心,尽量不要这样使用。6.6调试调试在软件开发中是一个很重要的局部,存在软件生命周期的各个局部中。调试能够用配置开、关是最根本的。很常用的一种调试方法就是用一个PrintStream类成员,在没有定义调试流的时候就为null,类要定义一个

    27、debug方法来设置调试用的流。6.7性能在写代码的时候,从头至尾都应该考虑性能问题。这不是说时间都应该浪费在优化代码上,而是我们时刻应该提醒自己要注意代码的效率。比如:如果没有时间来实现一个高效的算法,那么我们应该在文档中记录下来,以便在以后有空的时候再来实现她。不是所有的人都同意在写代码的时候应该优化性能这个观点的,他们认为性能优化的问题应该在项目的后期再去考虑,也就是在程序的轮廓已经实现了以后。不必要的对象构造不要在循环中构造和释放对象6.8使用StringBuffer和StringBuilder对象在处理String的时候要尽量使用StringBuffer类,StringBuffer类是构成String类的根底。String类将StringBuffer类封装了起来,以花费更多时间为代价为开发人员提供了一个安全的接口。当我们在构造字符串的时候,我们应该用StringBuffer来实现大局部的工作,当工作完成后将StringBuffer对象再转换为需要的String对象。比如:如果有一个字符串必须不断地在其后添加许多字符来完成构造,那么我们应该使用StringBuffer对象和她的append()方法。如果我们用String对象代替StringBuffer对象的话,会花费许多不必要


    注意事项

    本文(JAVA程序编码要求规范.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开