华软软件学院 Java编码规范
2.7 克隆方法
如果这个类是可以被克隆的,就应实现clone 方法: public Object clone() {
try {
CounterSet obj = (CounterSet)super.clone(); obj.packets = (int[])packets.clone(); obj.size = size; return obj;
}catch(CloneNotSupportedException e) {
throw new InternalError(\e.getMessage()); } }
2.8 类方法
下面开始写类方法: /**
* Set the packet counters
* (such as when restoring from a database) */
protected final void setArray(int[] r1, int[] r2, int[] r3, int[] r4) throws IllegalArgumentException {
//
// Ensure the arrays are of equal size //
if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length)
throw new IllegalArgumentException(\System.arraycopy(r1, 0, r3, 0, r1.length); System.arraycopy(r2, 0, r4, 0, r1.length); }
2.9 toString 方法
每一个类都最好定义toString 方法: public String toString() {
String retval = \
华软软件学院 Java编码规范
for (int i = 0; i < data.length(); i++) {
retval += data.bytes.toString(); retval += data.packets.toString(); }
return retval; }
2.10 main 方法(*)
如果类中包含main(String[]) 方法, 那么它应该写在类的底部。
三、代码编写风格
3.1 代码格式
代码应该用unix 的格式,而不是windows 的(比如:回车变成回车+换行)。
3.2 文档化(*)
必须遵守javadoc 风格来为源程序写注释。不仅因为它是标准,这也是被各种java 编 译器都认可的方法。
3.3 缩进(*)
缩进采用4 个空格(2 个太少不明显,8 个太多占空间)。不要在源文件中保存Tab 字符(!!)。在使用不同的源代码管理工具时Tab 字符将因为用户设置的不同而显示为不同的 宽度。 例如:
在Jbuilder7中作如下设置:
在Tools?Editor Options?Editor 面板上修改Block Indent为4,Tab Size为4。
3.4 行宽
行宽应该设置为80 字符。源代码一行一般不应超过这个宽度,这会导致无法完整显示。 但这一设置也可以灵活调整。超长的语句应该在一个逗号后或者一个操作符前折行。一条语 句折行后,应该根据实际情况进行缩进,总的原则是代码看起来清楚整洁。
3.5 折行(*)
需要折行时应遵循如下原则: ·在逗号后。 ·在操作符前。 ·高级别优先(例1)。
华软软件学院 Java编码规范
·第二行做两次缩进,第三行与第二行对齐。 例1:
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // 推荐使用
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // 避免使用
例2
// 均缩进8 个空格以避免很深的缩进
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg, Object andStillAnother) {
// 下一层语句4 空格缩进 }
// 避免此种缩进
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { // 此折行方式不佳 doSomethingAboutIt(); // 此行不易读 }
// 应用此种断行/ 缩进方式 if ((condition1 && condition2)
|| (condition3 && condition4) ||!(condition5 && condition6)) {
doSomethingAboutIt(); }
// 或此种折行/ 缩进方式
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) { doSomethingAboutIt(); }
三重表达式可用以下缩进方式:
alpha = (aLongBooleanExpression) ? beta : gamma;
华软软件学院 Java编码规范
或:
alpha = (aLongBooleanExpression) ? beta
: gamma;
或:
alpha = (aLongBooleanExpression)
? beta : gamma;
3.6 变量声明
推荐一行只写一行变量声明语句,这样有助于写注释。如: int level; // indentation level int size; // size of table 是推荐的,而要避免: int level, size; 的写法。
此外,要杜绝不同类型变量写在一行的错误: int foo, fooarray[];
3.7 {} 对
{} 中的语句应该单独作为一行,并采用如下风格: if (i>0) { i ++ ;
}; // 正确, { 单独作为一行
不推荐使用:
if (i>0) { i ++ }; // 错误, { 和} 在同一行
或
if (i>0)
{ // 错误, ‘{ ’应在上一行末尾。
i ++ ; }
} 语句永远单独作为一行。
相关推荐: