JAVA coding 规范基准集.docx
- 文档编号:24918068
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:16
- 大小:21.65KB
JAVA coding 规范基准集.docx
《JAVA coding 规范基准集.docx》由会员分享,可在线阅读,更多相关《JAVA coding 规范基准集.docx(16页珍藏版)》请在冰豆网上搜索。
JAVAcoding规范基准集
JAJAcoding规范
天和经济研究所
作成日:
2011-3-10
改訂日:
目录
前言4
1命名规则4
1.1file名4
1.2Class名4
1.3异常class名4
1.4Interface名4
1.5抽象类名4
1.6实现类名(implements)4
1.7能力附加型接口名4
1.8常量(staticfinal)4
1.9method名4
1.10factory方法(new一个对象)4
1.11converter方法(把一个对象变成其他的对象)5
1.12获得属性的method5
1.13设置属性的method5
1.14返回boolean变量的method5
1.15boolean变量5
1.16名字的对称性5
2coding规约7
2.1全般7
2.1.1参照对象来使用interface7
2.1.2不要使用不被推荐的API7
2.1.3不被使用的代码不要记述7
2.1.4声明用适当的权限记述7
2.1.5适当使用final7
2.1.6要意识到原始(primitive)型和参考型的区别7
2.2使用规定7
2.2.1一个方法的行数在20-150行的程度7
2.2.2一个类的行数在600-1000行的程度7
2.2.3一个类内的public方法在30个以下7
2.2.4不要扩大循环的复杂性8
2.3格式8
2.3.1不要用tab键,空白部分用四个空格。
8
2.3.2避免行太长8
2.3.3“{”后不要声明8
2.3.4一行里不能有两个以上的声明。
8
2.3.5逗号后加空格。
8
2.3.6赋值运算符的前后加空格。
9
2.3.7For循环内的分号后面加空格。
9
2.3.8“++”、“—”和操作数之间不可加空格。
9
2.3.9位运算符的前后加空格。
9
2.3.10逻辑运算符的前后加空格。
10
2.3.11关系运算符前后加空格。
10
2.3.12算术运算符的前后加空格。
10
2.3.13return语句中不使用括号。
11
2.3.14不等号的方向统一为左向(“<”、“<=”)。
11
2.4注释12
2.4.1加注JavaDoccomment。
12
2.4.2记述修正历史comment。
13
2.5class13
2.5.1不想使之被继承的类用final声明13
2.5.2遵守声明field的顺序规则。
13
2.6Constructor13
2.6.1defaultconstructor要按照原则做成。
13
2.7method14
2.7.1不想使之被覆盖的方法用final声明。
14
2.7.2method只有一个功能14
2.8全体变量14
2.8.1尽可能用局部变量14
2.9控制结构14
2.9.1条件语句的“{}”不可省略。
14
前言
本资料是在软件开发项目中用java编码规则的规定。
本资料的方针是编写易读、易维护的编码。
1命名规则
1.1file名
public的类名根据编译规则,必须同文件名一致(包括大小写一致)
public类在其类名的文件里
例)publicclassSampleClass写在SampleClass.java中。
包内的非public类可以包含在被使用public类的文件中(这种情况下,注意*.java和*.class不对应)
1.2Class名
开头字母、区分的字母要大写。
此外用小写。
例)SampleClass
1.3异常class名
最后用Exception描述。
例)SampleException
1.4Interface名
开头加上I,剩余部分与class名相同。
例)ISample
1.5抽象类名
开头加上Abstract,剩余部分与class名相同。
1.6实现类名(implements)
最后加上Impl,剩余部分与class名相同。
例)SampleImpl
1.7能力附加型接口名
例)Pluggable
1.8常量(staticfinal)
用“_”连接大写字母
例)STATIC_TEST_COUNT
1.9method名
开头小写,只有区分的字母用大写
例)testMethod()
1.10factory方法(new一个对象)
create+对象名
例)createX()
1.11converter方法(把一个对象变成其他的对象)
to+对象名
例)toX()
1.12获得属性的method
get+对象名
例)getX()
1.13设置属性的method
set+对象名
例)setX(XValue)
1.14返回boolean变量的method
is+形容词、can+动词、has+过去分词、三单元动词、三单元动词+名词
例)booleanisEmpty()
booleancanGet()
booleanhasChanged()
booleancontains(Object)
booleancontainsKey(Key)
1.15boolean变量
is+形容词、can+动词、has+过去分词、三单元动词、三单元动词+名词
例)booleanisEmpty
booleandirty
booleancontainsMoreElements
1.16名字的对称性
注意class名、method英语的对称性
add/remove
insert/delete
get/set
start/stop
begin/end
send/receive
first/last
get/release
put/get
up/down
show/hide
source/target
open/close
source/destination
increment/decrement
lock/unlock
old/new
next/previous
2coding规约
2.1全般
2.1.1参照对象来使用interface
参照对象时,请使用适合于实装该对象的类的interface。
2.1.2不要使用不被推荐的API
不被推荐的API不要使用,请参照javaDoc中的代替方案
2.1.3不被使用的代码不要记述
不被使用的private方法及变量、局部变量不要记述
2.1.4声明用适当的权限记述
充分理解private、public等修饰符的意思,用适当的权限声明class、method、变量、常量
2.1.5适当使用final
无法不被继承的class、无法被重载的method、值不变的变量等、
不变的事物/不想让它变化的事物用final声明
2.1.6要意识到原始(primitive)型和参考型的区别
原始(primitive)型和参考型主要有以下3点特性不同。
◆运行速度以及资源使用
原始型与参照型不同,使用时不需要生成新的对象。
由此能节约时间以及资源。
◆默认值
原始型:
因型而异
参照型:
null
◆数据构造
原始型:
拥有值本身
代入时,代入值本身
参照型:
拥有对值的参照(指针)
代入时,代入对值的参照
2.2使用规定
2.2.1一个方法的行数在20-150行的程度
一个方法的行数包括注释20行是最理想的。
请不要多于150行。
行数还在增加的情况下,请分割成若干方法,重新设计。
2.2.2一个类的行数在600-1000行的程度
一个类的行数包括注释600行是最理想的。
请不要多于1000行。
行数还在增加的情况下,请分割成若干类,重新设计。
2.2.3一个类内的public方法在30个以下
一个类的public请控制在30个以下。
行数还在增加的情况下,请分割成若干类,重新设计。
2.2.4不要扩大循环的复杂性
块的网数、class/method的调用、复合条件部分的数量越多,代码就越复杂。
随着代码变得复杂,可读性、可维护性差,bug发生的可能性增高。
2.3格式
2.3.1不要用tab键,空白部分用四个空格。
在代码的缩进用tab键时,根据编辑器的设定缩进会被破坏,缩进请用四个空格。
2.3.2避免行太长
一行请控制在80个字符以内。
把长的行换行时目标有以下三点。
逗号后换行。
在优先度低的运算符前换行。
代入变量时,把处理分割到若干行中。
例)1.逗号后换行
publicvoidfixedMethod(booleanbooleanValue,
StringstringValue,
intintValue){
}
2.运算符前换行
doublelength=Math.sqrt(Math.random()
+Math.pow(Math.random(),2.0));
3.代入变量
doublexSquared=Math.pow(Math.random(),2.0);
doublelength=Math.sqrt(Math.random()+xSquared);
2.3.3“{”后不要声明
“{”之后必须换行。
例)privatevoidsampleMethod(){
inti=0;
}
2.3.4一行里不能有两个以上的声明。
一行里必须只声明一次,声明后请换行。
例)publicintSampleMethod(inttop,intbottom){
intresult=top-bottom;
returnresult;
}
2.3.5逗号后加空格。
逗号后须加空格
例)publicvoidSampleMethod(intscore,intnumber){
:
}
2.3.6赋值运算符的前后加空格。
赋值运算符(=,+=,-=,…)的前后须添加空格。
例)a=1;
2.3.7For循环内的分号后面加空格。
For循环内的分号后面须添加空格。
例)for(inti=0;i<1000;i++){
:
}
2.3.8“++”、“—”和操作数之间不可加空格。
前置单项运算符、后置单项运算符的“++”和“—”、操作数(运算对象或变量)之间不可加空格。
例)System.out.println(“value:
”+++a);//修改完毕
System.out.println(“value:
”+a++);
2.3.9位运算符的前后加空格。
位运算符(“|”、“&”、“^”、“<<”、“>>”)的前后须加空格。
例)inta=x>>y;
intb=a&x;
intc=x^y;
2.3.10逻辑运算符的前后加空格。
逻辑运算符(“||”、“&&”)的前后须加空格。
例)if(a||b){
:
}
if(a&&b){
:
}
if(a&&b){
:
}
2.3.11关系运算符前后加空格。
关系运算符(“<”、“>”、“>=”、“<=”、“==”、“!
=”)的前后须加空格。
例)if(a<=b){
:
}
if(a==b){
:
}
if(a!
=b){
:
}
2.3.12算术运算符的前后加空格。
算术运算符(“+”、“-”、“*”、“/”、“%”)的前后须加空格。
例)if(a+b){
:
}
if(a%b){
:
}
if(a/b){
:
}
2.3.13return语句中不使用括号。
请不要在return语句中使用不必要的括号。
例)returna+b;
return(int)a;
2.3.14不等号的方向统一为左向(“<”、“<=”)。
不等号的方向请统一为左向。
例)if(a
:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA coding 规范基准集 规范 基准