Java编程规范手册_第1页
Java编程规范手册_第2页
Java编程规范手册_第3页
Java编程规范手册_第4页
Java编程规范手册_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如有你有帮助,请购买下载,谢谢!如有你有帮助,请购买下载,谢谢!页PAGE14页如有你有帮助,请购买下载,谢谢!页网道Java编程规范一、目的:本规范立足于所收集到的各种Java编码标准、规范、惯例以及指导性原则,根据本公司的具体情况进行调整后制定而成,其目的是便于软件代码易于理解、维护以及重用。更为重要的事,遵循这些标准可以显著地提高软件生产率。记住:编码是具有集体性质的,其易读性、易维护性是编码优良的重要评判标准。二、原则尽量添加注释。为人编码,而不是为电脑编码。先做设计,然后编码。保持代码简单。从小到大编制。切忌一上手就编制大规模代码。三、基本规范1注释在Java中,存在三种注释,分别为

2、:文档注释:/*/;多行注释:/*/;单行注释:/。这三种注释将用于不同的位置。1.1 原则尽可能进行代码注释。力求注释简洁、清楚、易懂。先写注释,再写代码除了注释代码功能外,更为重要的是注释出为什么要这样做,便于别人知道你写这段代码的目的。1.2 注释规范注释类型用途例子备注文档注释(/*/)类(Class)接口(Interface)成员函数(Member Function)属性(Attribute, Field)的声明前面。/*Customer A customer is any person or organization that we sell services and produc

3、ts to.author S.W. Ambler*/由于Javadoc能文档注释中的某些特定元素,故文档注释通常用于书写项目文档。多行注释(/*/)注释掉暂时不使用的代码。/*This code was commented out by J.T. Kirk on Dec 9, 1997 because it was replaced by the preceding code. Delete it after two years if it is still not applicable. . . (the source code )*/表明这段源代码暂时不使用。可能在以后会改变主意使用它。必

4、须说明原因。单行注释(/)用于成员函数中说明:程序逻辑代码片断临时变量声明等/ Apply a 5% discount to all invoices/ over $1000 as defined by the Sarek/ generosity campaign started in/ Feb. of 1995.建议采用单行注释来进行代码中的说明性行为。1.3 注释的内容名称注释内容Javadoc参数参数Arguments/Parameters参数类型用途使用的约束或者前提条件尽量给出一个示例属性Fields/Attributes属性描述所有可能的取值或取值范围示例并发中可能存在的问题可见性

5、设置。通常属性都设置为“私有”类型,如果设置不一样,请给出原因。see ClassNamesee ClassName#memberFunctionName成员函数(外部)Member Functions功能、用途以及编写该成员函数的原因输入的参数返回值该函数抛出的“例外”以及抛出的条件已知的缺陷可见性设置代码更改历史示例(如何调用该成员函数)可能的约束和前提条件并发性策略param name descriptionreturn descriptionexception name descriptiondeprecatedsincesee ClassNamesee ClassName#membe

6、rFunctionName成员函数(内部)Member Functions注释局部变量注释复杂的代码注释控制结构,如分支、循环等,表明其控制流向及意图注释代码功能以及缘由局部变量Local Variables用途实例变量Instance Variables用途类Classes类的用途类实例的所有取值获取值范围已知的缺陷(通常在功能尚未完善时)类的开发/维护历史并发策略authordeprecatedsincesee ClassNamesee ClassName#memberFunctionNameversion接口Interfaces功能、用途什么情况下适用该接口什么情况下不适用该接口auth

7、orsee ClassNamesee ClassName#memberFunctionNameversion包Packages文件名包名版权信息用途所涉及的相关包所包含的类开发/维护历史2命名2.1 原则采用有明确意义的英文单词全名(通常为名词、动词)作为描述符,但不宜于太长(一般不超过20个字符)。每一个代码行限制在80个字符以内采用常见的专业术语。混合大小写形式,便于阅读。通常在定义名称时,采取名称中的每一个单词首字母大写(第一个单词首字母小写),其余字母小写的形式。尽量不要采用缩写形式,在其缩写已经被广泛接受的情况下,采用相应的缩写方式,如URL, HTML, XML等。虽然Java是大

8、小写敏感的语言,但避免采用只是大小写不同的名称。如lastName和LastName等避免使用下划线( _ )以及 $ 符号,特别是前导或后置下划线。因为这些变量经常被用作系统变量。只是在常数定义中,因采用大写形式而加入下划线以增加可读性。2.2 允许的缩写名称缩写形式备注messagemsgmanagermgrdatabaseDbcommandCmdimplementationimpl2.3 命名规范名称命名规范例子备注参数Arguments/Parameters该参数的英文单词第一个英文单词首字母小写集合参数采用复数形式firstNamelastNamecustomers属性Fields/

9、Attributes该属性的英文单词第一个英文单词首字母小写集合属性采用复数形式firstNamelastNamewarpSpeedorderItemscustomers布尔形Get函数Boolean Getter Member Functionsis + 函数名has +函数名can +函数名isPersistent()isString()一般Get函数Getter Member Functionsget + 函数名getFirstName()getLastName()getWarpSpeed()Set函数Setter Member Functionsset + 函数名setFirstNam

10、e()setLastName()setWarpSpeed()成员函数Member Functions尽量以一个英文动词开头第一个英文单词首字母小写openFile()addAccount()测试函数test + 函数名testOpenFile()主要是便于系统测试。在测试完成以后,可以搜索测试函数,将其注释调即可。局部变量Local Variables第一个英文单词首字母小写,其余单词首字母大写不要采用仅仅是大小写不同的局部变量grandTotalcustomernewAccount实例变量Instance Variables采用与对象意义相关的与普通变量命名法则相同循环计数器Loop cou

11、nters采用惯例i, j, k, counter例外Exceptions采用惯例e常数Constants所有单词采用大写形式单词之间用下划线分隔,以便于阅读MIN_BALANCEDEFAULT_DATE类Classes所有单词的首字母均大写CustomerSavingsAccount接口Interfaces所有单词的首字母均大写ContactablePrompterSingleton为了明确意义,通常最后一个单词有后缀,如“-able”、“-ible”和“-er”等。包Packages包中各标识符用句点(.)分隔由Sun公司发布的标准包是以“java”标识符开头的局部包由小写的标识符分隔而成

12、全球发行的包由公司域名倒写而成java.awtpersistence.mapping.rationalinterface.screenserface.screensdao.www.naisa.dispatcher析构器DestructorsJava本身没有析构器,但可以激活名为finalize()的函数finalize()组件Components/Widgets组件描述符 + 类型全名第一个单词首字母小写okButtoncustomerListfileMenu构建器Constructors名字与类名完全相同Customer()SavingsAccount()文件名Files主类名 + “.ja

13、va”Customer.javaSavingsAccount.java四、格式1源文件基本组织在源文件中,建议采用以下组织。序号内容例子1包注释/*FILE: MySourceFile.javaPACKAGE: Copyright (c) 2000 NetDao, Inc. All Rights ReservedCommentsHistory:2000/10/20 : Developer Name Change some code2000/09/12 Developer Name Add Member Function2000/09/01 Developer Name Create this

14、file*/2包名package ;3引入Java公共包import ;4引入第三方包import com.weblogic.*;5引入自己的项目包import ;6类注释/*Class MyNewClass1 Description goes hereversion 1.82 20 Oct. 2000author FirstName LastName*/7类声明Public class MyNewClass1 extends SomeClass1 8变量声明(含注释) public protected package level variable private/* classVar1 的文

15、档注释*/public int classVar1;9实例变量申明(含注释) public protected package level variable private/* instanceVar1的文档注释*/public Object instanceVar1;10构建器/* MyNewClass的文档注释*/public MyNewClass() /implementation11方法/* doSomething1方法的文档注释*/public void doSomething1() /implementation/* doSomething2方法的文档注释param somePar

16、am descriptionreturn descriptionexception someExecption description*/public void doSomething2() /implementation12其它类申明/*Class MyNewClass2 Description goes hereversion 1.82 20 Oct. 2000author FirstName LastName*/Public class MyNewClass2 extends SomeClass2 2辅助格式2.1 空行(段落)为了增加可读性,在程序中需要加入空行,形成逻辑段落。为此原则

17、场景例子两个空行在每一个类或者接口申明前一个空行在成员函数之间方法中局部变量块申明后逻辑块或控制块(Block)之间2.2 空格与括号空格应该在以下场所适用。场景例子备注表达式中圆括号前后while (true) 参数列表中参数之间public Foo testFunc(arg1, arg2, arg3) 操作符两端a += c + d;while (d+ = c+) 在运算符“.”两端和“+”和“-”前不要加入空格造型(cast)后面myMethod(byte) aNum, (Object) x)2.3 缩进为了便于代码阅读,通常在程序中要采用缩进方式,以对齐同一级别的代码。通常每一个级别采

18、用Tab(4个空格)方式缩进对齐。2.4 换行在一个表达式太长以致于超过一行,这是需要换行。黄行需要遵循以下原则原则例子备注在表达式忠的逗号后面换行someMethod(longExpression1, longExpression2, longExpression3, longExpression4);var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3, longExpression4);在操作符前面换行longName1 = longName2 * (longName3 + long

19、Name4 longName5) + 4 * longName6;但不要这样断行,尽量保持同一级别运算在同一行上longName1 = longName2 * (longName3 + longName4 longName5) + 4 * longName6;保持换行后的新行与同级别的代码对齐,如果需要很多短换行,采用与第一行所近两个Tab键位置someMethod(int argument1, Object argument2, String argument3, Object argument4) private static synchronized horkingLongMethodN

20、ame(int argument1, Object argument2, String argument3, Object argument4, Object argument5) 避免出现这样的情形,而导致很多的短换行private static synchronized horkingLongMethodName(int argument1, Object argument2, String argument3, Object argument4, Object argument5) 多运算符换行alpha = (aLongBooleanExpression) ? beta : gamma或者alpha = (aLongBooleanExpression) ? beta : gamma3推荐修饰符顺序。修饰符时刻用于类中方法和变量的各种组合的关键字。在Java中存在一系列的修饰符。下面是推荐的修饰符顺序 abstract static final native synchronized interface其中表示public, protected和private表示transient和volati

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论