教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Java语言编码规范- 副本(4)

来源:网络收集 时间:2026-08-28
导读: if (a == b c == d)//避免使用 if ((a == b) (c == d))//常用 在使用if…else时,尽量把多发生的情况放在前面,而不是放在后面,如: boolean error = readFile (fileName); if (!error) {//通常情况下,文件的读取

if (a == b && c == d)//避免使用 if ((a == b) && (c == d))//常用

在使用if…else时,尽量把多发生的情况放在前面,而不是放在后面,如:

boolean error = readFile (fileName);

if (!error) {//通常情况下,文件的读取都是正常的

doSomething();

}

else {

doSomething();

}

尽量把if条件和要处理的事务分开为两行,如:

if (done)// NOT: if (done) doSomething(); doSomething();

在条件语句中,不要放置执行语句,如:

file = openFile (fileName, \ if (file != null) { doSomething(); } 而不是

if ((file = openFile (fileName, \ doSomething(); }

3. 关于变量

1) 2) 3) 4) 5) 6)

最好总是在每个变量出现的时候就马上进行初始化。

最好只在需要的时候再声明(declare)一个变量,否则将影响代码的执行效果。 变量的作用域应该尽可能的小,尽量不使用全局变量。 绝不在程序中声明意义相同的变量。 类变量不声明为public。 变量生命周期应尽量短。

4. 关于类型转换

类型转换一定要明确清晰,不要模糊转换,如:

floatValue = (float) intValue; // NOT: floatValue = intValue;

-8-

5. 关于try /catch

try/catch一般有两种用法,

一种是不带有系统资源的,可直接使用,如下:

try {

statements;

} catch (ExceptionClass e) { statements; }

一种是在带有资源释放的,如数据库连接的释放,文件的关闭等等,这些通常会在方法的最后作释放工作,采用带有finally的try/catch用法,这种用法的好处是,方法在退出之前,一定会执行finally中的操作,所以对于释放资源一类的操作,统一放在finally中是很好的处理方法,如下:

try {

statements;

} catch (ExceptionClass e) { statements; } finally {

statements; }

6. 关于return

不要在一个方法的中间使用“return”, “return”只能出现在一个方法的末尾。在方法的中间使用“return”会给今后将方法拆分成几个更小的方法带来困难;而且它会迫使开发者不得不为该方法考虑多于一个的出口点。

7. 杂项

尽量使用StringBuffer代替String用于可变字符串。若能预知可变字符串的最大长度,或在绝大多数场合下的最大长度,应使用此长度作为StringBuffer构造函数的参数,以避免在多数场合下需要为StringBuffer重新分配内存。

ArrayList与StringBuffer类同,若能预知列表的最大长度,或在绝大多数场合下的最大长度,应使用此长度作为ArrayList构造函数的参数,以避免在多数场合下需要为ArrayList重新分配内存。

-9-

8. 空白(White Space) 空行(Blank Lines)

空行将逻辑相关的代码段分隔开,以提高可读性。 下列情况应该总是使用两个空行:

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

下列情况应该总是使用一个空行: - 两个方法之间

- 方法内的局部变量和方法的第一条语句之间

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

空格(Blank Spaces)

下列情况应该使用空格:

- 一个紧跟着括号的关键字应该被空格分开,例如: while (true) { ... }

注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。 - 空白应该位于参数列表中逗号的后面 - 所有的二元运算符,除了\,应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号(\、自增(\和自减(\。例如: a += c + d;

a = (a + b) / (c * d);

while (d++ = s++) { n++; }

printSize(\

- for语句中的表达式应该被空格分开,例如: for (expr1; expr2; expr3)

- 强制转型后应该跟一个空格,例如: myMethod((byte) aNum, (Object) x);

myMethod((int) (cp + 5), ((int) (i + 3)) + 1);

-10-

编程惯例(Programming Practices)

4.9. 提供对实例以及类变量的访问控制(Providing Access to Instance and Class Variables)

若没有足够理由,不要把实例或类变量声明为公有。通常,实例变量无需显式的设置(set)和获取(gotten),通常这作为方法调用的边缘效应 (side effect)而产生。

一个具有公有实例变量的恰当例子,是类仅作为数据结构,没有行为。亦即,若你要使用一个结构(struct)而非一个类(如果java支持结构的话),那么把类的实例变量声明为公有是合适的。

4.10. 引用类变量和类方法(Referring to Class Variables and Methods)

避免用一个对象访问一个类的静态变量和方法。应该用类名替代。例如: classMethod(); //OK AClass.classMethod(); //OK anObject.classMethod(); //AVOID!

4.11. 常量(Constants)

位于for循环中作为计数器值的数字常量,除了-1,0和1之外,不应被直接写入代码。

4.12. 变量赋值(Variable Assignments)

避免在一个语句中给多个变量赋相同的值。它很难读懂。例如: fooBar.fChar = barFoo.lchar = 'c'; // AVOID!

不要将赋值运算符用在容易与相等关系运算符混淆的地方。例如: if (c++ = d++) { // AVOID! (Java disallows) ... } 应该写成

if ((c++ = d++) != 0) { ... }

不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。例如:

-11-

d = (a = b + c) + r; // AVOID! 应该写成 a = b + c; d = a + r;

4.13. 其它惯例(Miscellaneous Practices)

4.13.1.

圆括号(Parentheses)

一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。 …… 此处隐藏:1235字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java语言编码规范- 副本(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/606061.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)