Java编程标准手册.docx

上传人:b****7 文档编号:9085281 上传时间:2023-02-03 格式:DOCX 页数:16 大小:20.67KB
下载 相关 举报
Java编程标准手册.docx_第1页
第1页 / 共16页
Java编程标准手册.docx_第2页
第2页 / 共16页
Java编程标准手册.docx_第3页
第3页 / 共16页
Java编程标准手册.docx_第4页
第4页 / 共16页
Java编程标准手册.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Java编程标准手册.docx

《Java编程标准手册.docx》由会员分享,可在线阅读,更多相关《Java编程标准手册.docx(16页珍藏版)》请在冰豆网上搜索。

Java编程标准手册.docx

Java编程标准手册

网道Java编程标准

一、目的:

本标准立足于所搜集到的各类Java编码标准、标准、老例和指导性原那么,依照本公司的具体情形进行调整后制定而成,其目的是便于软件代码易于明白得、保护和重用。

更为重要的事,遵循这些标准能够显著地提高软件生产率。

记住:

编码是具有集体性质的,其易读性、易保护性是编码优良的重要评判标准。

二、原那么

1.尽可能添加注释。

2.为人编码,而不是为电脑编码。

3.先做设计,然后编码。

4.维持代码简单。

5.从小到大编制。

切忌一上手就编制大规模代码。

三、大体标准

1.注释

在Java中,存在三种注释,别离为:

●文档注释:

/**………*/;

●多行注释:

/*………*/;

单行注释:

@author.Ambler

*/

由于Javadoc能文档注释中的某些特定元素,故文档注释通常用于书写项目文档。

 

多行注释

(/*………*/)

注释掉暂时不使用的代码。

 

/*

Thiscodewascommentedoutby.KirkonDec9,1997becauseitwasreplacedbytheprecedingcode.Deleteitaftertwoyearsifitisstillnotapplicable.

.

..(thesourcecode)

*/

表明这段源代码暂时不使用。

可能在以后会改变主意使用它。

必须说明原因。

单行注释

of1995.

建议采用单行注释来进行代码中的说明性行为。

注释的内容

名称

注释内容

Javadoc参数

参数

Arguments/Parameters

●参数类型

●用途

●使用的约束或者前提条件

●尽量给出一个示例

属性

Fields/Attributes

●属性描述

●所有可能的取值或取值范围

●示例

●并发中可能存在的问题

●可见性设置。

通常属性都设置为“私有”类型,如果设置不一样,请给出原因。

●@seeClassName

●@seeClassName#memberFunctionName

成员函数(外部)

MemberFunctions

●功能、用途以及编写该成员函数的原因

●输入的参数

●返回值

●该函数抛出的“例外”以及抛出的条件

●已知的缺陷

●可见性设置

●代码更改历史

●示例(如何调用该成员函数)

●可能的约束和前提条件

●并发性策略

●@paramnamedescription

●@returndescription

●@exceptionnamedescription

●@deprecated

●@since

●@seeClassName

●@seeClassName#memberFunctionName

成员函数(内部)

MemberFunctions

●注释局部变量

●注释复杂的代码

●注释控制结构,如分支、循环等,表明其控制流向及意图

●注释代码功能以及缘由

局部变量

LocalVariables

●用途

实例变量

InstanceVariables

●用途

Classes

●类的用途

●类实例的所有取值获取值范围

●已知的缺陷(通常在功能尚未完善时)

●类的开发/维护历史

●并发策略

●@author

●@deprecated

●@since

●@seeClassName

●@seeClassName#memberFunctionName

●@version

接口

Interfaces

●功能、用途

●什么情况下适用该接口

●什么情况下不适用该接口

●@author

●@seeClassName

●@seeClassName#memberFunctionName

●@version

Packages

●文件名

●包名

●版权信息

●用途

●所涉及的相关包

●所包含的类

●开发/维护历史

 

2.命名

原那么

●采纳有明确意义的英文单词全名(一样为名词、动词)作为描述符,但不宜于太长(一样不超过20个字符)。

●每一个代码行限制在80个字符之内

●采纳常见的专业术语。

●混合大小写形式,便于阅读。

通常在概念名称时,采取名称中的每一个单词首字母大写(第一个单词首字母小写),其余字母小写的形式。

●尽可能不要采纳缩写形式,在其缩写已经被普遍同意的情形下,采纳相应的缩写方式,如URL,HTML,XML等。

●尽管Java是大小写灵敏的语言,但幸免采纳只是大小写不同的名称。

如lastName和LastName等

●幸免利用下划线(_)和$符号,专门是前导或后置下划线。

因为这些变量常常被用作系统变量。

只是在常数概念中,因采纳大写形式而加入下划线以增加可读性。

许诺的缩写

名称

缩写形式

备注

message

msg

manager

mgr

database

Db

command

Cmd

implementation

impl

 

命名标准

名称

命名规范

例子

备注

参数

Arguments/

Parameters

●该参数的英文单词

●第一个英文单词首字母小写

●集合参数采用复数形式

firstName

lastName

customers

属性

Fields/

Attributes

●该属性的英文单词

●第一个英文单词首字母小写

●集合属性采用复数形式

firstName

lastName

warpSpeed

orderItems

customers

布尔形Get函数

BooleanGetterMemberFunctions

●is+函数名

●has+函数名

●can+函数名

isPersistent()

isString()

一般Get函数

GetterMemberFunctions

●get+函数名

getFirstName()

getLastName()

getWarpSpeed()

Set函数

SetterMemberFunctions

●set+函数名

setFirstName()

setLastName()

setWarpSpeed()

成员函数

MemberFunctions

●尽量以一个英文动词开头

●第一个英文单词首字母小写

openFile()

addAccount()

测试函数

●test+函数名

testOpenFile()

主要是便于系统测试。

在测试完成以后,可以搜索测试函数,将其注释调即可。

局部变量

LocalVariables

●第一个英文单词首字母小写,其余单词首字母大写

●不要采用仅仅是大小写不同的局部变量

grandTotal

customer

newAccount

实例变量

InstanceVariables

●采用与对象意义相关的

●与普通变量命名法则相同

循环计数器

Loopcounters

●采用惯例

i,j,k,counter

例外

Exceptions

●采用惯例

e

常数

Constants

●所有单词采用大写形式

●单词之间用下划线分隔,以便于阅读

MIN_BALANCE

DEFAULT_DATE

Classes

●所有单词的首字母均大写

Customer

SavingsAccount

接口

Interfaces

●所有单词的首字母均大写

Contactable

Prompter

Singleton

为了明确意义,通常最后一个单词有后缀,如“-able”、“-ible”和“-er”等。

Packages

●包中各标识符用句点(.)分隔

●由Sun公司发布的标准包是以“java”标识符开头的

●局部包由小写的标识符分隔而成

●全球发行的包由公司域名倒写而成

 

析构器

Destructors

●Java本身没有析构器,但可以激活名为finalize()的函数

finalize()

组件

Components/

Widgets

●组件描述符+类型全名

●第一个单词首字母小写

okButton

customerList

fileMenu

构建器

Constructors

●名字与类名完全相同

Customer()

SavingsAccount()

文件名

Files

●主类名+“.java”

 

四、格式

1.源文件大体组织

在源文件中,建议采纳以下组织。

序号

内容

例子

1

包注释

/**

FILE:

PACKAGE:

(c)2000NetDao,Inc.AllRightsReserved

Comments

History:

2000/10/20:

DeveloperName

Changesomecode

2000/09/12DeveloperName

AddMemberFunction

2000/09/01DeveloperName

Createthisfile

*/

2

包名

package

引入Java公共包

import

引入第三方包

import.*;

5

引入自己的项目包

import

类注释

/**

ClassMyNewClass1Descriptiongoeshere

@version20Oct.2000

@authorFirstNameLastName

*/

7

类声明

PublicclassMyNewClass1extendsSomeClass1{

}

8

变量声明(含注释)

public

protected

packagelevelvariable

private

/**

classVar1的文档注释

*/

publicintclassVar1;

9

实例变量申明(含注释)

public

protected

packagelevelvariable

private

/**

instanceVar1的文档注释

*/

publicObjectinstanceVar1;

10

构建器

/**

MyNewClass的文档注释

*/

publicMyNewClass(){

2000

@authorFirstNameLastName

*/

PublicclassMyNewClass2extendsSomeClass2{

}

2.辅助格式

空行(段落)

为了增加可读性,在程序中需要加入空行,形成逻辑段落。

为此

原则

场景

例子

两个空行

●在每一个类或者接口申明前

一个空行

●在成员函数之间

●方法中局部变量块申明后

●逻辑块或控制块(Block)之间

 

空格与括号

空格应该在以下场所适用。

场景

例子

备注

表达式中圆括号前后

while(true){

}

参数列表中参数之间

publicFootestFunc(arg1,arg2,arg3){

}

操作符两端

a+=c+d;

while(d++=c++){

}

在运算符“.”两端和“++”和“--”前不要加入空格

造型(cast)后面

myMethod((byte)aNum,(Object)x)

缩进

为了便于代码阅读,通常在程序中要采纳缩进方式,以对齐同一级别的代码。

通常每一个级别采纳Tab(4个空格)方式缩进对齐。

换行

在一个表达式太长以致于超过一行,这是需要换行。

黄行需要遵循以下原那么

原则

例子

备注

在表达式忠的逗号后面换行

someMethod(longExpression1,longExpression2,longExpression3,

longExpression4);

var=someMethod1(longExpression1,

someMethod2(longExpression2,longExpression3,

longExpression4));

在操作符前面换行

longName1=longName2*(longName3+longName4–longName5)

+4*longName6;

但不要这样断行,尽量保持同一级别运算在同一行上

longName1=longName2*(longName3+longName4

–longName5)+4*longName6;

保持换行后的新行与同级别的代码对齐,如果需要很多短换行,采用与第一行所近两个Tab键位置

someMethod(intargument1,Objectargument2,Stringargument3,

Objectargument4){

}

privatestaticsynchronizedhorkingLongMethodName(intargument1,

Objectargument2,Stringargument3,Objectargument4,

Objectargument5){

}

避免出现这样的情形,而导致很多的短换行

privatestaticsynchronizedhorkingLongMethodName(intargument1,

Objectargument2,

Stringargument3,

Objectargument4,

Objectargument5){

}

多运算符换行

alpha=(aLongBooleanExpression)?

beta

:

gamma

或者

alpha=(aLongBooleanExpression)

?

beta

:

gamma

3.推荐修饰符顺序。

修饰符时刻用于类中方式和变量的各类组合的关键字。

在Java中存在一系列的修饰符。

下面是推荐的修饰符顺序

abstractstaticfinalnativesynchronizedinterface

其中

表示public,protected和private

表示transient和volatile

4.其它设置

名称

惯例

备注

属性存取函数

AccessorMemberFunctions

●使用属性存取函数来获取或修改所有属性

●对于集合属性,添加插入和删除集合元素的成员函数

一般成员函数

MemberFunctions

●30秒原则。

成员函数应能够让其它程序员在30秒内明白其功能,如果不能做到,说明你的代码晦涩难懂,可能不利于维护。

●一行代码应完成一个功能。

尽量不要把很多语句连结在一行代码上,导致可读性差。

●尽可能降低成员函数的可见性。

●表明各成员函数的操作顺序。

属性

Fields/

Attributes

●尽量将属性定义为私有。

●尽量不要直接存取属性,应通过属性存取函数来进行属性的获取和修改

●时刻记住属性的初始化工作

局部变量

LocalVariables

●一行定义一个局部变量,一个变量只有一种用途。

●用单行注释对局部变量进行注释

●在需要使用局部变量的地方进行变量定义

Classes

●近来使类具有如下结构

构建器

析构器finalize()

public成元函数

protected成员函数

private成员函数

private属性

其它

●不能直接在代码中使用数值,如100,32768等,这时应将其定义为常数来加以使用。

但-1,0,1处外,它们通常作为系统特殊常数值。

●switch语句总是要有default语句。

●return后面的返回语句不要用圆括号括起来。

●if语句的代码块总是要用{}括起来,以便于阅读。

4.成立公司内部的代码术语(关键词)表。

形成标准。

希望列位推荐个小组的术语,便于汇总。

参考资料:

1.JavaCodeConventions,

2.WritingRobustJavaCode,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1