关闭

关闭

封号提示

内容

首页 JAVA源代码规范[文字版][中文].doc

JAVA源代码规范[文字版][中文].doc

JAVA源代码规范[文字版][中文].doc

上传者: 陌未央 2013-03-21 评分1 评论0 下载54 收藏0 阅读量623 暂无简介 简介 举报

简介:本文档为《JAVA源代码规范[文字版][中文]doc》,可适用于IT/计算机领域,主题内容包含JAVA代码规范JAVA代码规范(初稿)版本更新信息本版本创建修改、维护、批准涉及人员如下:创建修改者:XX维护者:XX批准者:XX具体版本更新记录符等。

JAVA代码规范JAVA代码规范(初稿)版本更新信息本版本创建修改、维护、批准涉及人员如下:创建修改者:XX维护者:XX批准者:XX具体版本更新记录如表:表版本更新记录版本号修改确认日期修改人修改位置修改方式(AMD)修改内容概述VXX全部A初始版本发布修改方式:A-增加M-修改D-删除目的本文提供一整套编写高效可靠的Java代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础使代码易于理解、维护和增强灵活性。通过遵循一套通用的程序设计标准显著提高Java软件开发者的生产效率为开发团队的程序设计带来更大的一致性使软件开发团队的效率明显提高。规范的执行本文档适用于项目组内进行软件开发的所有技术人员即项目组内软件开发人员编写的所有源代码都必须遵循本规范。除临时性项目之外的任何项目均应严格按照此标准执行“临时性项目”指:为市场推广目的而编写的示程序为一次性用途而编写的临时性小程序为学习目的而编写的测试程序文档类别本文档属标准规范类的项目限制级文档未经老师及老师授权人员批准不得提供项目组以外的人员阅读和使用。使用对象本文档的使用对象包括:项目管理者质量保证人员软件开发人员目录介绍为什么要有编码规范通用代码格式文件组织缩进行长度换行空行空格注释注释约定实现注释的格式文档注释快速浏览javadoc声明每行声明变量的数量初始化布局类和接口的声明语句简单语句复合语句返回语句ififelseifelseifelse语句for语句while语句dowhile语句switch语句trycatch语句SQL命名规范总则项目命名命名规则变量命名机制基本类型变量命名规则:变量类型标识逻辑名一般常用对象命名规则临时变量命名规则全局变量、成员变量、局部变量命名规则常量命名机制HTML元素变量命名机制JSP文件命名机制类、接口、包和编译单元的标准类的标准命名类注释类接口标准命名接口注释接口包的标准命名包注释包编译单元标准命名编译单元注释编译单元字段标准(字段属性)字段可见性注释一个字段使用存取成员方法存取函数的可见性一定要初始化静态字段成员函数和方法标准命名函数和成员方法命名存取成员函数和方法命名构造函数成员函数和方法的可见性成员函数和方法参数标准命名参数注释参数注释成员函数和方法编程惯例提供对实例以及类变量的访问控制引用类变量和类方法常量变量赋值其它惯例圆括号返回值条件运算符""前的表达式特殊注释代码范例源文件范例缩写说明参考资料介绍为什么要有编码规范编码规范对于程序员而言尤为重要有以下几个原因:一个软件产品的的生命期是在维护。几乎没有一个软件在它的整个生命期里都是被它的作者来维护的。使用好的风格提高了软件的可维护性。 如果源代码和软件产品是捆绑给客户的作为产品的剩余部分它应该有好的分包(wellpackaged)足够清晰和专业的代码。通用代码格式文件组织一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过行的程序难以阅读应该尽量避免。Java源文件必须遵循以下规则:文件头部注释所有的源文件都应该在开头有一个C语言风格的注释其中列出文件名、作者、公司、日期、描述、修改说明和版权声明:**File:OrderSessionBeanjava*Author:wangxie*Version:*Date:*Modify:*Description:*Copyrightnotice*包和引入语句在Java源文件中第一个非注释行是Package语句。Package 行要在 Import 行之前Import 中标准的包名要在本地的包名之前而且按照字母顺序排列。例如:packagejavaawtimportjavaawtpeerCanvasPeerimportjavaioInputStreamimportcneducuitTestApplication类和接口声明下表描述了类和接口声明的各个部分以及它们出现的先后次序。序号类接口声明的各部分注解类接口文档注释(**……*)该注释中所需包含的信息。类或接口的声明 类接口实现的注释(*……*)如果有必要的话该注释应包含任何有关整个类或接口的信息而这些信息又不适合作为类接口文档注释。类的(静态)变量首先是类的公共变量随后是保护变量再后是包一级别的变量(没有访问修饰符accessmodifier)最后是私有变量。实例变量首先是公共级别的随后是保护级别的再后是包一级别的(没有访问修饰符)最后是私有级别的。构造器 方法这些方法应该按功能而非作用域或访问权限分组。例如一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码。缩进个空格常被作为缩进排版的一个单位以表示缩进显示程序的层次级别增加程序的可读性。不要在源代码中保留tab字符这是因为tab字符会随着不同用户的不同设置和不同的资源管理工具(打印、文档、版本控制等)而代表不同的宽度。行长度尽量避免一行的长度超过个字符因为很多终端和工具不能很好处理之。注意:用于文档中的例子应该使用更短的行长长度一般不超过个字符。换行当一个表达式无法容纳在一行内时可以依据如下一般规则断开之:在一个逗号后面断开在一个操作符前面断开宁可选择较高级别(higherlevel)的断开而非较低级别(lowerlevel)的断开新的一行应该与上一行同一级别表达式的开头处对齐如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边那就代之以缩进个空格。以下是断开方法调用的一些例子:someMethod(longExpression,longExpression,longExpression,longExpression,longExpression)var=someMethod(longExpression, someMethod(longExpression,longExpression))以下是两个断开算术表达式的例子。前者更好因为断开处位于括号表达式的外边这是个较高级别的断开。longName=longName*(longNamelongNamelongName)*longnamePREFFERlongName=longName*(longNamelongNamelongName)*longnameAVOID以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右所以代之以缩进个空格CONVENTIONALINDENTATIONsomeMethod(intanArg,ObjectanotherArg,StringyetAnotherArg,ObjectandStillAnother){}INDENTSPACESTOAVOIDVERYDEEPINDENTSprivatestaticsynchronizedhorkingLongMethodName(intanArg,ObjectanotherArg,StringyetAnotherArg,ObjectandStillAnother){}if语句的换行通常使用个空格的规则因为常规缩进(个空格)会使语句体看起来比较费劲。比如:不要使用如下缩进if((conditioncondition)||(conditioncondition)||!(conditioncondition)){不好的换行doSomethingAboutIt()易使这行被忽视}使用如下缩进if((conditioncondition)||(conditioncondition)||!(conditioncondition)){doSomethingAboutIt()}或者使用如下缩进if((conditioncondition)||(conditioncondition)||!(conditioncondition)){doSomethingAboutIt()}这里有三种可行的方法用于处理三元运算表达式:alpha=(aLongBooleanExpression)beta:gammaalpha=(aLongBooleanExpression)beta:gammaalpha=(aLongBooleanExpression)beta:gamma空行空行将逻辑相关的代码段分隔开以提高可读性。下列情况应该总是使用两个空行:一个源文件的两个片段(section)之间类声明和接口声明之间下列情况应该总是使用一个空行:两个方法之间方法内的局部变量和方法的第一条语句之间块注释或单行注释之前一个方法内的两个逻辑段之间用以提高可读性空格下列情况应该使用空格:一个紧跟着括号的关键字应该被空格分开例如:while(true){}注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。空白应该位于参数列表中逗号的后面所有的二元运算符除了""应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格比如:负号("")、自增("")和自减("")。例如:a=cda=(ab)(c*d)while(d=s){n}printSize("sizeis"foo"n")for语句中的表达式应该被空格分开例如:for(exprexprexpr)强制转型后应该跟一个空格例如:myMethod((byte)aNum,(Object)x)myMethod((int)(cp),((int)(i)))注释Java程序有两类注释:实现注释(implementationcomments)和文档注释(documentcomments)。实现注释是那些在C中见过的使用**和界定的注释。文档注释(被称为"doccomments")是Java独有的并由***界定。文档注释可以通过javadoc工具转换成HTML文件。注意:频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候考虑一下重写代码使其更清晰。注释约定注释应该增加代码的清晰度。代码注释的目的是要使代码更易于被同时参与程序设计的开发人员以及其他后继开发人员理解。避免使用装饰性内容也就是说不要使用象广告横幅那样的注释语句。典型的是用星号将他们的内部注释圈起来。这只是在大量浪费时间并不能给最终的产品增加丝毫价值。保持注释的简洁。最好的注释应该是简单明了的注释。注释不必洋洋洒洒只需提供足够的信息使别人能够理解你的代码。先写注释后写代码。写代码注释的最好方法是在写代码之前就写注释。这使你在写代码之前可以想想代码的功能和运行。而且这样确保不会遗漏注释。另一种方法是边写代码边写注释。因为注释可以使代码更易理解所以在程序开发的过程中也可以利用这一点。如果打算花些时间写注释那么至少你应从这个过程中获得些什么。注释信息不仅要包括代码的功能还应给出原因。例如下面例子中的代码显示金额在$,以上(包括$,)的定单可给予的折扣。为什么要这样做呢?难道有一个商业法则规定大额定单可以得到折扣吗?这种给大额定单的特殊是有时限的呢还是一直都这样?最初的程序设计者是否只是由于慷慨大度才这样做呢?除非它们在某个地方(或者是在源代码本身或者是在一个外部文档里)被注释出来否则你不可能知道这些。例:if(grandTotal>=){grandTotal=grandTotal*}实现注释的格式程序可以有种实现注释的风格:块(block)、单行(singleline)、尾端(trailing)和行末(endofline)。块注释块注释通常用于提供对文件方法数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。块注释之首应该有一个空行用于把块注释和代码分割开来比如:**Hereisablockcomment*块注释可以以*开头这样indent()就可以将之识别为一个代码块的开始而不会重排它。**Hereisablockcommentwithsomeveryspecial*formattingthatIwantindent()toignore**one*two*three*单行注释短注释可以显示在一行内并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完就该采用块注释(参见"块注释")。单行注释之前应该有一个空行。以下是一个Java代码中单行注释的例子:if(condition){*Handlethecondition*}尾端注释极短的注释可以与它们所要描述的代码位于同一行但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中它们应该具有相同的缩进。以下是一个Java代码中尾端注释的例子:if(a==){returnTRUE*specialcase*}else{returnisPrime(a)*worksonlyforodda*}行末注释注释界定符""可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本然而它可以用来注释掉连续多行的代码段。以下是所有三种风格的例子:if(foo>){Doadoubleflip}else{returnfalseExplainwhyhere}if(bar>){Doatripleflip}else{returnfalse}文档注释文档注释描述Java的类、接口、构造器方法以及字段(field)。每个文档注释都会被置于注释定界符***之中一个注释对应一个类、接口或成员。该注释应位于声明之前:***TheExampleclassprovides*publicclassExample{注意顶层(toplevel)的类和接口是不缩进的而其成员是缩进的。描述类和接口的文档注释的第一行(**)不需缩进随后的文档注释每行都缩进格(使星号纵向对齐)。成员包括构造函数在内其文档注释的第一行缩进格随后每行都缩进格。若你想给出有关类、接口、变量或方法的信息而这些信息又不适合写在文档中则可使用实现块注释或紧跟在声明后面的单行注释。例如有关一个类实现的细节应放入紧跟在类声明后面的实现块注释中而不是放在文档注释中。文档注释不能放在一个方法或构造器的定义块中因为Java会将位于文档注释之后的第一个声明与其相关联。快速浏览javadocjavadoc的程序可以处理Java的源代码文件并且为Java程序产生HTML文件形式的外部注释文档。Javadoc支持一定数目的标记标识注释文档中各段起始位置的保留字。详情请参考JSDKjavadoc文档。标记用于目的authorname类、接口说明特定某一段程序代码的作者。每一个作者各有一个标记。deprecated类、成员函数说明该类的应用程序编程接口(API)已被废弃因此应不再使用。exceptionnamedescription成员函数说明由成员函数发出的异常。一个异常采用一个标记并要给出异常的完整类名。paramnamedescription成员函数用来说明传递给一个成员函数的参数其中包括参数的类型类和用法。每个参数各有一个标记。returndescription成员函数若成员函数有返回值对该返回值进行说明。应说明返回值的类型类和可能的用途。since类、成员函数说明自从有JDK以来该项已存在了多长时间。seeClassName类、接口、成员函数、字段在文档中生成指向特定类的超文本链接。可以并且应该采用完全合法的类名。seeClassName#memberfunctionName类、接口、成员函数、字段在文档中生成指向特定成员函数的超文本链接。可以并且应该采用完全合法的类名。versiontext类、接口说明特定一段代码的版本信息。声明每行声明变量的数量推荐一行一个声明因为这样以利于写注释。亦即intlevelindentationlevelintsizesizeoftable要优于intlevel,size不要将不同类型变量的声明放在同一行例如:intfoo,fooarray避免!注意:上面的例子中在类型和标识符之间放了一个空格初始化在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。布局只在代码块的开始处声明变量。(一个块是指任何被包含在一对大括号"{"和"}"中间的代码。)不要在首次用到该变量时才声明之。这会把注意力不集中的程序员搞糊涂同时会妨碍代码在该作用域内的可移植性。voidmyMethod(){intint=在方法的开始处if(condition){intint=在”if”块的开始处}}该规则的一个例外是for循环的索引变量for(inti=i<maxLoopsi){}避免声明的局部变量覆盖上一级声明的变量。例如不要在内部代码块中声明相同的变量名:intcountmyMethod(){if(condition){intcount=避免!}}类和接口的声明当编写类和接口时应该遵守以下格式规则:在方法名与其参数列表之前的左括号"("间不要有空格。左大括号"{"位于声明语句同行的末尾。右大括号"}"另起一行与相应的声明语句对齐除非是一个空语句"}"应紧跟在"{"之后。classSampleextendsObject{intivarintivarSample(inti,intj){ivar=iivar=j}intemptyMethod(){}}语句简单语句每行至多包含一条语句例如:argv正确argc正确argvargc避免!复合语句复合语句是包含在大括号中的语句序列形如"{语句}"。例如下面各段。大括号中的语句应该较之复合语句缩进一个层次。左大括号"{"应位于复合语句起始行的行尾右大括号"}"应另起一行并与复合语句首行对齐。。大括号可以被用于所有语句包括单个语句只要这些语句是诸如ifelse或for控制结构的一部分。这样便于添加语句而无需担心由于忘了加括号而引入bug。返回语句一个带返回值的return语句不使用小括号"()"除非它们以某种方式使返回值更为显见。例如:returnreturnmyDisksize()return(sizesize:defaultSize)ififelseifelseifelse语句ifelse语句应该具有如下格式:if(condition){statements}if(condition){statements}else{statements}if(condition){statements}elseif(condition){statements}else{statements}注意:if语句总是用"{"和"}"括起来避免使用如下容易引起错误的格式:if(condition)避免!省略{}!statementfor语句一个for语句应该具有如下格式:for(initializationconditionupdate){statements}一个空的for语句(所有工作都在初始化条件判断更新子句中完成)应该具有如下格式:for(initializationconditionupdate)当在for语句的初始化或更新子句中使用逗号时避免因使用三个以上变量而导致复杂度提高。若需要可以在for循环之前(为初始化子句)或for循环末尾(为更新子句)使用单独的语句。while语句一个while语句应该具有如下格式while(condition){statements}一个空的while语句应该具有如下格式:while(condition)dowhile语句一个dowhile语句应该具有如下格式:do{statements}while(condition)switch语句一个switch语句应该具有如下格式:switch(condition){caseABC:statements*fallsthrough*caseDEF:statementsbreakcaseXYZ:statementsbreakdefault:statementsbreak}每当一个case顺着往下执行时(因为没有break语句)通常应在break语句的位置添加注释。上面的示例代码中就包含注释*fallsthrough*。每个switch语句应包括一个default选项。default选项里的break是冗余的但可预防以后增加另一个选项后没有中断执行导致错误的情况出现。trycatch语句一个trycatch语句应该具有如下格式:try{statements}catch(ExceptionClasse){statements}一个trycatch语句后面也可能跟着一个finally语句不论try代码块是否顺利执行完它都会被执行。try{statements}catch(ExceptionClasse){statements}finally{statements}SQLSQL语句中所有的关键字大写主语句太长需换行时要求缩进四个空格。子语句提行书写并缩进一个四个空格。当where后带有两个以上的条件时条件需换行书写如有逻辑符号则应写在每个条件语句的前面。例如:SELECT字段字段字段Count(*)FROM表表WHERE条件AND条件OR条件GROUPBY字段字段字段ORDERBY字段字段DESC字段命名规范总则凡在精联公司内进行开发的任何软件项目的命名无论是项目名称、文件名、数据库名、表名、字段名、SQL存贮过程名、变量名、函数名、类名、组件名均应符合以下规定:名称全部由下划线、英文字母和数字组成在以下情况下可以在名称中出现数字:用于命名版本(项目版本、文件版本、函数版本等)用于临时性的小程序(如演示程序、测试程序、编程学习程序等)的变量命名因特殊原因两个对象(指项目、文件、数据库等)一定要具有相同的英文名称时如果系统限制名称长度(如某些数据库管理系统中表的命名)低于位字符则以系统限制为标准否则任何对象(指项目、文件、数据库等)的名称均不得超过个字符(命名文件时扩展名不计)除以下情况外名称全部应由有意义的英文单词(当英文单词很难表达时可以变通采用汉字拼音)组成并且不超过个英文单词Word文档的命名命名数据库、表、字段名时用到的开头特定字符(mc)临时性项目(如演示程序、测试程序、编程学习程序等)项目命名一般来说项目名称有两个含义。一是该项目的通用名如“合理用药系统”主要用于公司内部交流它可以是中文也可以是英文且不受本规范的限制二是该项目在开发人员进行代码管理时用的英文缩写名如“PASS”它用于项目在计算机上的管理。此处主要讨论后一种命名。项目名称由该项目的负责人指定项目名称用于以下场合:如命名VisualSourceSafe项目名命名该项目在开发人员本地计算机的工作文件夹名命名WSAD的ear文件名命名用于保存、拷贝、压缩、电邮传递等场合的文件夹名或文件名一般情况下项目名不应含版本信息如遇特殊情况由可考虑用数字和下划线的方式来指定版本。如PASS表示PASS版。规范的项目名称如:项目通用名称:健康信息管理系统项目名称:PIMSVisualSourceSafe项目名:PIMS该项目各开发人员在本地计算机上的工作文件夹名:PIMSWSAD项目文件名:PIMS如导出该项目压缩成一个文件可能名称为:PIMSear命名规则命名规范使程序更易读从而更易于理解。它们也可以提供一些有关标识符功能的信息以助于理解代码例如不论它是一个常量包还是类。标识符类型命名规则例子包(Packages)一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名通常是comedugovmilnetorg或年ISO标准所指定的标识国家的英文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department)项目(project)机器(machine)或注册名(loginnames)。comapplequicktimeveducmucsbovikcheese类(Classes)命名规则:类名是个一名词采用大小写混合的方式每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词避免缩写词(除非该缩写词被更广泛使用像URLHTML)ClassRasterclassImageSprite接口(Interfaces)命名规则:大小写规则与类名相似interfaceRasterDelegateinterfaceStoring方法(Methods)方法名是一个动词采用大小写混合的方式第一个单词的首字母小写其后单词的首字母大写。run()runFast()getBackground()变量(Variables)除了变量名外所有实例包括类类常量均采用大小写混合的方式第一个单词的首字母小写其后单词的首字母大写。变量名不应以下划线或美元符号开头尽管这在语法上是允许的。变量名应简短且富于描述。变量名的选用应该易于记忆即能够指出其用途。尽量避免单个字符的变量名除非是一次性的临时变量。临时变量通常被取名为ijkm和n它们一般用于整型cde它们一般用于字符型。charcintifloatmyWidth实例变量(InstanceVariables)大小写规则和变量名相似除了前面需要一个下划线intemployeeIdStringnameCustomercustomer常量(Constants)类常量和ANSI常量的声明应该全部大写单词间用下划线隔开。(尽量避免ANSI常量容易引起错误)staticfinalintMINWIDTH=staticfinalintMAXWIDTH=staticfinalintGETTHECPU=变量命名机制基本类型变量命名规则:变量类型标识逻辑名变量类型标识用于标识该变量所存储的数据类型小写字母开头。逻辑名为变量所具有的表示具体应用含义的名称要做到见名知意书写时要以字母开头首字母大写基本变量类型标识定义如下:Type  Prefix                   short  s    int  in  char  cch   double  dboolean   blong   lfloat   f一般常用对象命名规则以下为一些常用对象前缀。如果有些对象不在以下表格中请将该对象类名小写做为前缀。 常用对象前缀如下:Type  Prefix                     Type  Prefix Short  short    Boolean   booleanInteger  int    Long   longChar  char    Float   fltObject  obj    String   strDate  dt    Event   eventDemenstion  obj    Size   sizeColor  clr    Context  ctxConnection conn    RecordSet  rsStatement  stmt    Command   cmdWindow  wnd    Frame   frameDialog  dlg    File   fileButton  btnSocket  skt  Image  img    InputStream  insOutputStream outs    PrintStream  psRequest  requestresq   Response  responseresp Double  dbl例如:int nCount   long lLength   Object objResult   String  strUserName   Frame frameMain  临时变量命名规则一般临时变量没有一个具体的意思所以一般临时变量名为Temp或Tmp。其中有一些为C语言或Fortan延续下来的常见临时变量也可以接受:如ijk一般用于表示一个临时整型变量。如:int nTemp,IString strTempBooleanbTmp  long lTem全局变量、成员变量、局部变量命名规则局部变量:指在一个程序模块中声明使用的变量该类变量使用中定义的命名规则(以后称一般命名)。全局变量:一般为多个模块公有所以在命名区别于局部变量要在一般命名的变量名前加上前缀:g如:intgnUserCount成员变量:是指类成员变量用于表示类的一种或一类属性。要在一般命名的变量名前加上前缀:m            如:StringmstrName 常量命名机制在Java中常量名一般为大写单词之间用分隔。如:publicstaticfinalintMAXUSERCOUNT=  HTML元素变量命名机制formname:frmFormNamehiddentext:首字母大写不用下划线。如:ClientIDOrderIDUserNamePasswdetcbuttonsubmit:btnButtonName如:<formname=”frmSearch”><inputtype=”Hidden”name=”ClientID”><inputtype=”Text”  name=”OrderID”><inputtype=”Button”name=”btnSubmit”><form> JSP文件命名机制JSP文件命名方式:首字母大写,不用下划线。如:OrderSearchjspClientMngjsp类、接口、包和编译单元的标准类的标准命名类标准Java约定是使用完全的英文描述符所有单词的第一个字母要大写并且单词中大小写混合。类名应是单数形式。举例:CustomerEmployeeOrderOrderItemFileStreamString注释类以下的信息应写在文档注释中紧靠类的定义的前面:类的目的。开发者需要了解一个类的一般目的以判断这个类是否满足他们的需求。养成一个注释与类有关的任何好东西的习惯例如:它是否是一个模式的一部分或是使用它时有什么要引起注意的限制。已知的问题。如果一个类有任何突出的问题应说明出来让其他的开发者了解这个类的缺点难点。此外还应注明为什么不解决问题的原因。注意:如果问题仅仅针对一个成员方法那么它应直接与那个成员方法相联系。类的开发维护历史。通常要包含一个历史记录表列出日期、类的作者和修改概要。这样做的目的是让进行维护的程序员了解过去曾对一个类所做的修改是谁做了什么样的修改。注释出采用的不变量。不变量是指一套有关实例或类在所有“稳定”时间片内为“真”的声明。“稳定时间片”是指在一个成员函数被对象类调用之前和立刻调用之后的时间。通过说明一个类的不变量你让其他的开发者了解应该如何使用一个类。并行策略。任何采用Runnable接口的类应充分说明它的并行策略。对许多程序员来说并行编程是一个新的而且复杂的题目所以需要投入一些额外的时间来确保人们能够读懂你的东西。说明你的并行策略以及为什么选取这个策略而不是其它策略这很重要。常用的并行策略包括下面一些内容:同步对象停滞(balking)对象警戒(guarded)对象版本(versioned)对象同步策略控制器接收器。例:***Aclassrepresentingawindowonthescreen*Forexample:*<pre>*Windowwin=newWindow(parent)*winshow()*<pre>**seeawtBaseWindow*seeawtButton*version*authorwangxie**classWindowextendsBaseWindow{}接口标准命名接口在接口名前加前缀“I”。建议在一个接口名的前面附加上字母“I”结果使名字变为如ISingleton或IRunnable这样。这种方法有助于将接口名与类和包的名字区分开来。注释接口以下的信息应写在文档注释中紧靠接口定义的前面:目的。在其他开发者应用一个接口之前他们需要理解接口封装的概念。换句话说他们需要了解接口的目的。一个好的检测是否有必要定义一个接口的方法是你是否可以很容易地说明它的目的。如果说明起来有困难很可能从一开始起就不需要这个接口。在Java中接口的概念较新所以人们对如何正确使用它们还不是很有经验常常滥用它们。它应如何被使用以及如何不被使用。开发者需要了解接口应如何使用以及如何不被使用。因为成员方法的标识在接口中定义所以对于每个成员方法的标识应遵循中的注释约定包的标准命名包关于包的命名有几条规则。按顺序来说这些规则是:标识符用点号分隔开来。为了使包的名字更易读Sun公司建议包名中的标识符用点号来分隔。例如包名javaawt含有两个标识符java和awt。Sun公司的标准java分配包用标识符java开头。Sun保有这种权利使得无论你的Java开发环境的零售商是怎样的标准java包的命名始终一致。局部包的名字中的第一个标识符不能都是大写。所谓局部包是指那些在你的机构内部使用不会应用到其他机构中去的包。这样的包的名字的例子有persistencemappingrelational和interfacescreens。全局包的名字用你的机构的Internet保留域名开头。一个要应用到多个机构的包应包含创建机构的域名并且最高层的域名类型要大写。注释包应保证有一个或者多个外部文档以说明你的机构所创建的包的用途。对于每个包应说明:包的基本原理。其他开发者需要了解一个包是用来做什么的这样他们才能判断是否可以用它如果是一个共享包他们可以判断是否需要改进或是扩展它。包中的类。在包中要包含一个类和接口的列表每个类或接口用简短的一行文字来说明以便让其他的开发者了解这个包中含有什么。编译单元标准命名编译单元编译单元在这个情况下是一个源码文件应被赋予文件内定义的主要的类或接口的名字。用与包或类相同的名字命名文件大小写也应相同。扩展名java应作为文件名的后缀。例:CustomerjavaSingletonjavaSavingsAccountjava注释编译单元虽然应努力使一个文件中只包含一个类或接口但是有时在一个文件中定义数个类(或者接口)也可理解。一般的经验规则是如果类B的唯一用途是封装只被类A需要的功能那么可以理解类B出现在与类A相同的源码文件中。下面的文档约定应用于一个源码文件而不具体到类:对于有几个类的文件列出每一个类。如果一个文件包含多个类则应给出一个类的列表并且简要地说明每个类。文件名和或标识信息。文件名应包含在它的顶端。好处是如果代码被打印出来了你会知道源码文件是什么。版权信息。若可能应

类似资料

编辑推荐

中国经济地理讲义(初稿)下册(中国人民大学 1958).pdf

Current Protocols in Molecular Biology.pdf

《作为佛教的佛教》周贵华着.pdf

高中《物理》(选修2-3).pdf

《每天读点禅》沉云庵编着.pdf

职业精品

精彩专题

结婚彩礼真有那么重要吗?

原创于西周而后沿袭至今的彩礼,虽然被一部分家长奉为圭臬,但越来越多的年轻人对结婚必须要彩礼不以为然。彩礼引发的社会矛盾越来越受到关注,结婚是自己的事,如人饮水冷暖自知,至于要不要彩礼或者要多少彩礼,因人而异,因财力而已,不可一概而论。

用户评论

0/200
    暂无评论
上传我的资料

精选资料

热门资料排行换一换

  • (美)郑麒来著:中国古代的食人:…

  • [法]阿兰·科尔班:大地的钟声:…

  • 马克思恩格斯全集第1卷.PDF

  • 红卫兵-政治训练下的造反者与追求…

  • 64小学数学几何题解答.pdf

  • 佛法真实论.pdf

  • 持松法师论著选集.pdf

  • 阿拉伯帝国.pdf

  • 章太炎《国学概论》.PDF

  • 资料评价:

    / 36
    所需积分:0 立即下载

    意见
    反馈

    返回
    顶部