Java编码书写规范_第1页
Java编码书写规范_第2页
Java编码书写规范_第3页
Java编码书写规范_第4页
Java编码书写规范_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

Java编码书写规范

Java编码书写规范版本修订记录序号简要说

明(变更内容和变更范围)日期变更人3

文档评审记录序号评审人角色评审日期签字评审看法

Java编码书写规范

文档编号:

目目录1.命名约定11.1.一般概念11.2.示

范12.注释约定42.1.一般概念42.2.示范42.3.

注释范围53.文件样式约定53.1.JAVA(*.JAVA)5

3.1.1.版权信息63.1.2.PACKAGE/IMPORTS63.1.3.C

LASS63.1.4.CLASSFIELDS73.1.5.构造函数8

3.1.6.克隆方法83.1.7.类方法(类的一般成员函数)9

3.1.8.TOSTRING方法93.1.9.MAIN方法103.2.JAVA

SERVERPAGE(*.JSP)103.2.1.版本信息103.2.2.TAG

113.2.3.值输出113.2.4.嵌入代码段114.其它代码

书写风格约定124.1.文档自动生成124.2.缩进124.3.

页宽124.4.变量声明144.5.变量初始化144.6.局部

变量声明154.7.空行154.8.大括号{}154.9.小括

号()15Java编码书写规范

文档编号:

4.10.运算符164.11.参数间隔164.12.JSP文件

命名164.13.SERVLET类命名(待定)165.编码指南16

5.1.对实例以及类变量的访问限制165.2.引用类变量和类方

法175.3.常量175.4.变量赋值175.5.其它惯例18

5.5.1.圆括号185.5.2.返回值185.5.3.条件运算符?前

的表达式195.5.4.特殊注释195.5.5.异样运用原则19

Java编码书写规范

文档编号:

济南广域软件有限公司

第1页共24页JinanWide-AreaSoftwareCo.,Ltd1.命

名约定除了以下几个特例之外,命名时必需始终采纳完整的英文描

述符。

此外,一般应采纳小写字母,但类名、接口名以及任何非初始单

词的第一个字母要大写。

1.1.一般概念尽量运用完整的英文描述符采纳适用

于相关领域的术语采纳大小写混合使名字可读尽量少用缩

写,但假如用了,要明智地运用,且在整个工程中统一避开运用

长的名字(尽量小于25个字母)避开运用类似的名字,或者仅

仅是大小写不同的名字避开运用下划线(除静态常量等)1.2.

示范包(Package)采纳完整的英文描述符,应当都是由小写字母

组成,格式为com.dcosft.

如:

com.dcsoft.ework,workflowcom.dcsoftir.ons

com.dcsoft.utility类(Class)采纳完整的英文描述符,全部单

词的第一个字母大写,在上下文语境允许的状况下,可以运用缩略词,

但必需保证整个开发小组的一样性,比如:

number可缩写为num。

如:

CustomerSavingsAccountJava编码书写规范

文档编号:

济南广域软件有限公司

第2页共24页JinanWide-AreaSoftwareCo.,Ltd接口

(Interface)采纳完整的英文描述符说明接口封装,全部单词的第

一个字母大写。

在接口名称的最前面运用大写的T表明这是一个接口。

习惯上,名字后面加上后缀able,ible或者er,但这不是必

需的。

如:

组件/部件(Component)运用完整的英文描述来说明组件的

用途,前端加上组件类型。

如:

异样(Exception)采纳异样类型的各单词首字母表示异样。

如:

字段/属性字段采纳完整的英文描述,第一个字母小写,任何

中间单词的首字母大写。

实参/参数同字段/属性的命名规则局部变量同字段/属

性的命名规则获得成员函数被访问字段名的前面加上前缀geto

IContactableIPrompterbtnOKIstCustomermenuFile

ExcpetionelOExceptionioefirstNamelastNamepublicvoid

setFirstName(StringfirstName){this,firstName=

firstName;}Java编但书写规范

文档编号:

济南广域软件有限公司

第3页共24页JinanWide-AreaSoftwareCo.,Ltd布尔

型的获得成员函数全部的布尔型获得函数必需用单词is做前缀。

设置成员函数被访问字段名的前面加上前缀seto

一般成员函数采纳完整的英文描述说明成员函数功能,第一

个单词尽可能采纳一个动词,第一个字母小写。

静态常量字段(staticfinal)全部采纳大写字母,单词之

间用下划线分隔。

循环计数器通常采纳字母i,j,k,m,n或者counter都

可以接受。

数组应当总是用下面的方式来命名:

objectType[]variant,不得运用objectTypevariant口方式。

getFirstName()getLastName()isPersistent()isString()

setFirstName()setLastName()setWarpSpeed()openFile()

addAccount()MINBALANCE,DEFAULTDATEi,j,km,n,counter

int[]arrlnt;String]]args;Java编码书写规范

文档编号:

济南广域软件有限公司

第4页共24页JinanWide-AreaSoftwareCo.,Ltd对象实

例同组件/部件2.注释约定2.1.一般概念注释应当增加代

码的清晰度保持注释的简洁在写代码之前写注释注释

出为什么做了一些事,而不仅仅是做了什么2.2.示范文档注释在

紧靠接口、类、成员函数和字段声明的前面注释它们。

C语言风格注释采纳C语言风格的注释去掉不再运用但你

仍想保留的代码。

仍想保留是因为用户万一会变更想法,或者在调试过程中想让它

短暂失效。

单行注释在成员函数内采纳单行注释,来说明业务逻辑、代

码段和短暂变量的声明。

注释符〃后必需紧跟一个空格,然后才是注释信息。

byte[]arrBjffer;StringBuffersbContent;I**客户:

客户是我们将服务和产品卖给的人或机构。

*/Stringcustomer;/*这部分代码因为已被它之前的代码取

代,由B.Gustafsson,*于1999年6月4日注释掉。

假如两年之后还未运用,将*其删除。

・•.*(源代码)*/Java编码书写规范

文档编号:

济南广域软件有限公司

第5页共24页JinanWide-AreaSoftwareCo.,Ltd即约定

主要的说明性注释运用文档注释;C风格注释只用来标注过期不用的

代码;单行注释用来标注一些简洁却简洁混淆的逻辑,比较长的单独

作为一行,较简洁的可以放在代码行尾。

2.3.注释范围类:

类的目的、即类所完成的功能,注释出采纳的变量。

接口:

注释描述设置接口的目的、它应如何被运用。

成员函数:

对于设置与获得成员函数,在成员变量己有说明的状况下,可以

不加注释;一般成员函数注释要求说明完成什么功能,参数含义及返

回什么;一般成员函数内部限制结构:

注释代码做了些什么以及为什么这样做,处理依次等。

实参/参数:

注释参数含义、及其它任何约束或前提条件字段/属性:

注释字段的描述局部变量:

无特殊意义的状况下不加注释3.文件样式约定3.1.

Java(*.java)全部的Java(*.java)文件都必需遵守如下的样式规

则:

//遵照Sarek的规定,给全部〃超过$1000的发货单〃

打5%的折扣。

让利活〃动于1995年2月起先.if(condition){/*

处理条件*/.•.)Java编码书写规范

文档编号:

济南广域软件有限公司

第6页共24页JinanWide-AreaSoftwareCo.,Ltd3.1.1.

版权信息版权信息必需在java文件的开头,比如:

作者名称要用中文。

其他不须要出现在javadoc的信息也可以包含在这里。

3.1.2.Package/Importspackage行要在import行之前,

import中标准的包名要在本地的包名之前,而且根据字母依次排列。

假如import行中包含了同一个包中的不同子书目,则应当用*

来处理。

这里java.ic.*是用来代替InputStreamandOutputstream

的。

3.1.3.Class类的注释/***Copyright2009WatSoftCo.

Ltd.*Allrightreserved.*Author*Date2009-02-27*/

packagehotlava.net.stats;importjava.io.*;import

java.util.Observable;importhotlava.util.Application;Java

编码书写规范文

档编号:

济南广域软件有限公司

第7页共24页JinanWide-AreaSoftwareCo.,Ltd类定义:

包含了在不同行的extends和implements3.1.4.Class

Fields类的成员变量:

public的成员变量必需生成文档(JavaDoc)o

proceted>private和package定义的成员变量假如名字含义

明确的话,可以没有注释。

类变量的存取:

如类的成员变量已经有注释,类变量的存取方法可以没有注释。

/***pTitle:文件名称/p*pDescription:类内容的简介

/p*pb更新记录:

/b*格式:[更新日期][修改的版本][操作人]内容br*

[2005-06-28][L0][张三]完善create方法。

br*/p*pCopyright:Copyright(c)2009/p*pCompany:

WatSoftCo.Ltd./p*©version:1.1*/publicclass

CounterSetextendsObservableimplementsCloneable{}

/***Packetcounters*/protectedint[]packets;Java编

码书写规范文档

编号:

济南广域软件有限公司

第8页共24页JinanWide-AreaSoftwareCo.,Ltd3.1.5.

构造函数构造函数:

应当用递增的方式写(比如:

参数多的写在后面)。

3.1.6.克隆方法假如这个类是可以被克隆的,那么下一步就

是clone方法:

publicint[]getPackets(){returnthis,packets;}

publicvoidsetPackets(int[]packets){this,packets=

packets;}publicCounterSet(){this,size=100;}

publicCounterSet(intsize){this,size=size;}Java编

码书写规范文档

编号:

济南广域软件有限公司

第9页共24页JinanWide-AreaSoftwareCo.,Ltd3.1.7.

类方法(类的一般成员函数)类的方法:

3.1.8."String方法一般状况下,每一个类都应当定义

toString方法:

publicObjectclone(){try

{}catch(CloneNotSupportedExceptione)

{}}/***Setthepacketcounters*paramrl-

*paramr2-**/protectedfinalvoidsetArray(intrl,

int[]r2,int[]r3,int[]r4)throws

IlIcgalArgumentException{//Ensurethearraysareof

equalsize}publicStringtoString(){}Java编码书写

规范文档编号:

济南广域软件有限公司

第10页共24页JinanWide-AreaSoftwareCo.,Ltd3.1.9.

main方法一般类,考虑置入一个main。方法,其中包含用于测试

那个类的代码,假如包含了main。方法,那么它应当写在类的底部。

3.2.JavaServerPage(*.jsp)全部的Jsp(*.jsp)文件都必

需遵守如下的样式规则:

3.2.1.版本信息文件开头应有一个文件的版本注释,格式

为%—Copyright:

Copyright2009一%%-Company:

WatSoftCo.Ltd

—%%

功能简介:

对这一个实现的功能作一个简介。

传入参数:

列出该页接收的全部参数传入参数的说明,以及没有接收到参

数的处理方式假如有session,列出全部的session,然后说明

session,以及session的影响

%%一一Version:

版木号一%%—[更新日期][修改的版木][操作人]内容

-%%—[2005-06-28][1.0][张三]完善create方法。

一%Java编码书写规范

文档编号:

济南广域软件有限公司

第11页共24页JinanWide-AreaSoftwareCo.,Ltd3.2.2.

tag关键tag的书写依次为留意事项运用国标扩展字符集

(GBK)作为content的charsetcontentType在被包含的文件肯

定不能写,而其他文件肯定要写建议用以下两种格式:

tag一律用小写,属性的值用双引号引起来。

出错信息定向到公用的出错页面JSP页面与java编码

要完全分别(待补充)。

3.2.3,值输出输出值时运用%=value%。

3.2.4.嵌入代码段运用单独行%开头,单独行%结尾,注释参

见2,代码块缩进参见4.2。

%@pageimport二%%@includefile=%%©page

ContentType=text/html;charset=GBK%%@page

import=java.util.java.sql.*%%-多个import之间用逗号隔

开,结尾不要分号一%%@pageimport=java.util.*%%@page

import=java.sql.*%%--全部的import均分开写--%Java编码

书写规范文档编

号:

济南广域软件有限公司

第12页共24页JinanWide-AreaSoftwareCo.,Ltd4.其

它代码书写风格约定4.1.文档自动生成必需用javadoc来为类

生成文档。

不仅因为它是标准,这也是被各种java编译器都认可的方法。

运用©author标记是不被举荐的,因为代码不应当是被个人拥

有的。

4.2.缩进缩进是必需的,并且在同一系统全部编码的缩进风

格必需是统一的。

4.3.由宽由宽应当设置为80字符,源代码不能超过此宽

度。

在任何状况下,超长的语句应当在一个逗号或者一个操作符后

折行。

一条语句折行后,应当比原来的语句再缩进3个字符。

当一个表达式无法容纳在一行内时,可以依据如下一般规则断

开之:

在一个逗号后面断开在一个操作符前面断开宁

可选择较高级别(higher-level)的断开,而非较低级别(lower-level)

的断开新的一行应当与上一行同一级别表达式的开头处对齐

假如以上规则导致你的代码混乱或者使你的代码都堆挤在右边,

那就代之以缩进8个空格。

以下是两个断开算术表达式的例子。

前者更好,因为断开处位于括号表达式的外边,%for(inti

=0;i10;i++){out.println(i);}%Java编码书

写规范文档编

号:

济南广域软件有限公司

第13页共24页JinanWide-AreaSoftwareCo.,Ltd这是

个较高级别的断开。

longNamel=longName2*(longName3+longName4-

longName5)+4*longname6;〃参考longNamel=longName2

*(longNcime3+longName4-longName5)+4*longname6;//

避开以下是两个缩进方法声明的例子。

前者是常规情形。

后者若运用常规的缩进方式将会使其次行和第三行移得很靠右,

所以代之以缩进8个空格〃常规缩进someMethod(intanArg,

ObjectanotherArg,StringyetAnotherArg,

ObjectandStillAnother){...}〃制表符缩进private

staticsynchronizedhorkingLongMethodName(intanArg,

ObjectanotherArg,StringyetAnotherArg,Object

andStillAnother){...}if语句的换行通常运月8

个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费

劲。

比如:

〃不要用这种方式if((conditionlcondition2)||

(conditionscondition4)||!(conditionscondition6))

{doSomethingAboutlt();}〃用这种方式if

((conditionlcondition2)Java编码书写规范

文档编号:

济南广域软件有限公司

第14页共24页JinanWide-AreaSoftwareCo.,Ltd

(conditionscondition4)||!(conditions

condition6)){doSomethingAboutlt();}//或者这种方

式if((conditionlcondition2)||(conditionsconditicn4)

|!(conditionscondition6)){doSomethingAboutlt();}

这里有三种可行的方法用于处理三元运算表达式:

alpha=(aLongBooleanExpression)?beta:gairma;

alpha=(aLongBoo1eanExpression)?beta:gamma;alpha=

(aLongBoo1eanExpression)?beta:gamma;4.4.变量

声明必需一行一个声明,因为这样以利于写注释。

亦即,intlevel;〃标识层级别intsize;//表大小要

优于,intlevel,size;4.5.变量初始化尽量在声明局部变量

的同时初始化。

唯一不这么做的理由是变量的初始值依靠于某些从前发生的计

算。

Java编码书写规范

文档编号:

济南广域软件有限公司

第15页共24页JinanWide-AreaSoftwareCo.,Ltd4.6.

局部变量声明只在代码块的起先处声明变量。

(一个块是指任何被包含在大括号{和}中间的代码。

)不要在首次用到该变量时才声明之。

4.7.空行空行将逻辑相关的代码段分隔开,以提高可读性。

下列状况应当总是运用两个空行:

一个源文件的两个片段(section)之间类声明和接口

声明之间下列状况应当总是运用一个空行:

两个方法之间方法内的局部变量和方法的第一条语

句之间一个方法内的两个逻辑段之间,用以提高可读性4.8.

大括号{}{}中的语句应当单独作为一行。

例如:

4.9.小括号()左括号和后一个字符之间不应当出现空格;同

样,右括号和前一个字符之间也不应当出现空格。

例如:

不要在语句中运用无意义的括号,括号只应当为达到某种目的

而出现在源代码中。

if(iO){i++;}CallProc(AParameter);//不符

合规范CalIProc(AParameter);//符合规范Java编码书写规

范文档编号:

济南广域软件有限公司

第16页共24页JinanWide-AreaSoftwareCo.,Ltd4.10.

运算符每个运算符与两边的字符之间都应当有一个空格。

4.11.参数间隔多个参数之间的,应紧跟前面的参数,与后面

的参数之间有一个空格。

4.12.JSP文件命名采纳完整的英文描述说明JSP所完成的

功能,尽可能包括一个动词,第一个字母小写,如:

viewMessage.jsp>editUser.jsp或者forumChooser.jsp等。

4.13.Servlet类命名(待定)一般对应于所服务的对象加后

缀Service来命名,如:

UserService,TradeService等。

5.编码指南5.1.对实例以及类变量的访问限制若没有

足够理由,不要把实例或类变量声明为公有。

全部类成员变量要通过方法访问。

通常,实例变量无需显式的设置(set)和获得(gotten),通常这

作为方法调用的边缘效应(sideintnum=100;//符合规范num

+=1;//符合规范num=num-1;//不符合规范,应当是num=num

-1;publicintmax(inta,intb,intc){//符合规范

returnMath.max(Math,max(a,b),c);//不符合规范,a后面应当

由空格,〃b和c的

前面也应当由空格}Java编码书写规范

文档编号:

济南广域软件有限公司

第17页共24页JinanWide-AreaSoftwareCo.,Ltdeffect)

而产生。

一个具有公有实例变量的恰当例子,是类仅作为数据结构,没

有行为。

亦即,若你要运用一个结构(struct)而非一个类(假如java支

持结构的话),那么把类的实例变量声明为公有是合适的。

5.2.引用类变量和类方法避开用一个对象访问一个类的静

态变量和方法。

应当用类名替代。

例如:

classMethod();〃正确AClass.classMethod();〃正确

anObject.classMethod();〃避开!5.3.常量Java中的常量值

要用字符串表示,它区分为不同的类型,如整型常量123,实型量1.23,

字符常量a,布尔常量true、false以及字符串常量Thisisa

constantstring.。

例如:

finaldoublePI=3.14159;位于for循环中作为计数器值的

数字常量,除了T,0和1之外,不应被干脆写入代码。

例如:

for(inti=0;isize;i++){}5.4.变量赋值在一个语

句中不允许给多个变量赋相同的值。

它很难读懂。

例如:

fooBar.fChar=barFoo.Ichar='c';//避开!不要将

赋值运算符用在简洁与相等关系运算符混淆的地方。

例如:

Java编码书写规范

文档编号:

济南广域软件有限公司

第18页共24页JinanWide-AreaSoftwareCo.,Ltdif

(c++=d++){〃避开!Java不允许...}应当写成if

温馨提示

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

评论

0/150

提交评论