Java编程标准手册.docx
- 文档编号:9085281
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:16
- 大小:20.67KB
Java编程标准手册.docx
《Java编程标准手册.docx》由会员分享,可在线阅读,更多相关《Java编程标准手册.docx(16页珍藏版)》请在冰豆网上搜索。
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中存在一系列的修饰符。
下面是推荐的修饰符顺序
其中
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,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 编程 标准 手册