Java 程序编码规范Word下载.docx
- 文档编号:15291662
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:11
- 大小:21.22KB
Java 程序编码规范Word下载.docx
《Java 程序编码规范Word下载.docx》由会员分享,可在线阅读,更多相关《Java 程序编码规范Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
∙数组的命名
数组应该总是用下面的方式来命名:
byte[]buffer;
∙而不是:
bytebuffer[];
∙方法的参数
使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
SetCounter(intsize){
this.size=size;
}
二、Java文件样式
所有的Java(*.java)文件都必须遵守如下的样式规则
∙版权信息
版权信息必须在java文件的开头,比如:
/**
*Copyright?
2000ShanghaiXXXCo.Ltd.
*Allrightreserved.
*/
∙其他不需要出现在javadoc的信息也可以包含在这里。
∙Package/Imports
package行要在import行之前,import中标准的包名要在本地的包名之前,而且按照字母顺序排列。
如果import行中包含了同一个包中的不同子目录,则应该用*来处理。
package.stats;
importjava.io.*;
importjava.util.Observable;
importhotlava.util.Application;
∙这里java.io.*使用来代替InputStreamandOutputStream的。
∙Class
接下来的是类的注释,一般是用来解释类的。
*Aclassrepresentingasetofpacketandbytecounters
*Itisobservabletoallowittobewatched,butonly
*reportschangeswhenthecurrentsetiscomplete
∙接下来是类定义,包含了在不同的行的extends和implements
publicclassCounterSet
extendsObservable
implementsCloneable
∙ClassFields
接下来是类的成员变量:
*Packetcounters
protectedint[]packets;
∙public的成员变量必须生成文档(JavaDoc)。
proceted、private和package定义的成员变量如果名字含义明确的话,可以没有注释。
∙存取方法
接下来是类变量的存取的方法。
它只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上。
*Getthecounters
*@returnanarraycontainingthestatisticaldata.Thisarrayhasbeen
*freshlyallocatedandcanbemodifiedbythecaller.
publicint[]getPackets(){returncopyArray(packets,offset);
}
publicint[]getBytes(){returncopyArray(bytes,offset);
publicint[]getPackets(){returnpackets;
publicvoidsetPackets(int[]packets){this.packets=packets;
∙其它的方法不要写在一行上
∙构造函数
接下来是构造函数,它应该用递增的方式写(比如:
参数多的写在后面)。
访问类型("
public"
"
private"
等.)和任何"
static"
final"
或"
synchronized"
应该在一行中,并且方法和参数另写一行,这样可以使方法和参数更易读。
public
CounterSet(intsize){
∙克隆方法
如果这个类是可以被克隆的,那么下一步就是clone方法:
Objectclone(){
try{
CounterSetobj=(CounterSet)super.clone();
obj.packets=(int[])packets.clone();
obj.size=size;
returnobj;
}catch(CloneNotSupportedExceptione){
thrownewInternalError("
UnexpectedCloneNotSUpportedException:
"
+e.getMessage());
∙类方法
下面开始写类的方法:
*Setthepacketcounters
*(suchaswhenrestoringfromadatabase)
protectedfinal
voidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)
throwsIllegalArgumentException
{
//
//Ensurethearraysareofequalsize
if(r1.length!
=r2.length||r1.length!
=r3.length||r1.length!
=r4.length)
thrownewIllegalArgumentException("
Arraysmustbeofthesamesize"
);
System.arraycopy(r1,0,r3,0,r1.length);
System.arraycopy(r2,0,r4,0,r1.length);
∙toString方法
无论如何,每一个类都应该定义toString方法:
StringtoString(){
Stringretval="
CounterSet:
;
for(inti=0;
i<
data.length();
i++){
retval+=data.bytes.toString();
retval+=data.packets.toString();
returnretval;
∙main方法
如果main(String[])方法已经定义了,那么它应该写在类的底部.
三、代码编写格式
∙代码样式
代码应该用unix的格式,而不是windows的(比如:
回车变成回车+换行)
∙文档化
必须用javadoc来为类生成文档。
不仅因为它是标准,这也是被各种java编译器都认可的方法。
使用@author标记是不被推荐的,因为代码不应该是被个人拥有的。
∙缩进
缩进应该是每行2个空格.不要在源文件中保存Tab字符.在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度.
如果你使用UltrEdit作为你的Java源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符,方法是通过UltrEdit中先设定Tab使用的长度室2个空格,然后用Format|TabstoSpaces菜单将Tab转换为空格。
∙页宽
页宽应该设置为80字符.源代码一般不会超过这个宽度,并导致无法完整显示,但这一设置也可以灵活调整.在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行.一条语句折行后,应该比原来的语句再缩进2个字符.
∙{}对
{}中的语句应该单独作为一行.例如,下面的第1行是错误的,第2行是正确的:
if(i>
0){i++};
//错误,{和}在同一行
0){
i++
};
//正确,{单独作为一行
}语句永远单独作为一行.
∙如果}语句应该缩进到与其相对应的{那一行相对齐的位置。
∙括号
左括号和后一个字符之间不应该出现空格,同样,右括号和前一个字符之间也不应该出现空格.下面的例子说明括号和空格的错误及正确使用:
CallProc(AParameter);
//错误
CallProc(AParameter);
//正确
不要在语句中使用无意义的括号.括号只应该为达到某种目的而出现在源代码中。
下面的例子说明错误和正确的用法:
if((I)=42){//错误-括号毫无意义
if(I==42)or(J==42)then//正确-的确需要括号
四、程序编写规范
∙exit()
exit除了在main中可以被调用外,其他的地方不应该调用。
因为这样做不给任何代码代码机会来截获退出。
一个类似后台服务地程序不应该因为某一个库模块决定了要退出就退出。
∙异常
申明的错误应该抛出一个RuntimeException或者派生的异常。
顶层的main()函数应该截获所有的异常,并且打印(或者记录在日志中)在屏幕上。
∙垃圾收集
JAVA使用成熟的后台垃圾收集技术来代替引用计数。
但是这样会导致一个问题:
你必须在使用完对象的实例以后进行清场工作。
比如一个prel的程序员可能这么写:
...
{
FileOutputStreamfos=newFileOutputStream(projectFile);
project.save(fos,"
IDEProjectFile"
∙除非输出流一出作用域就关闭,非引用计数的程序语言,比如JAVA,是不能自动完成变量的清场工作的。
必须象下面一样写:
fos.close();
∙Clone
下面是一种有用的方法:
implemen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序编码规范 程序 编码 规范