6 - 声明

6.1 每行声明变量的数量

推荐一行一个声明,因为这样以利于写注释。即,


	int level; // indentation level
	int size;  // size of table

要优于


	int level, size;

不要将不同类型变量的声明放在同一行,例如:


	int foo,  fooarray[]; // 错误!

注意: 上面的例子中,在类型和标识符之间放了一个空格,另一种被允许的替代方式是使用制表符:


	int     level;          // indentation level
	int     size;           // size of table
	Object  currentEntry;   // currently selected table entry

6.2 初始化

尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。

6.3 布局

只在代码块的开始处声明变量。(一个块是指任何被包含在大括号{}中间的代码。)不要在首次用到该变量时才声明之。这会把注意力不集中的程序员搞糊涂,同时会妨碍代码在该作用域内的可移植性。


	void myMethod() {
	    int int1 = 0;         // beginning of method block
	
	    if (condition) {
	        int int2 = 0;     // beginning of "if" block
	        ...
	    }
	}

该规则的一个例外是for循环的索引变量:


	for (int i = 0; i < maxLoops; i++) { ... }

避免声明的局部变量覆盖上一级声明的变量。例如,不要在内部代码块中声明相同的变量名:


	int count;
	...
	myMethod() {
	    if (condition) {
	        int count = 0;     // 避免!
	        ...
	    }
	    ...
	}

6.4 类和接口的声明

当编写类和接口是,应该遵守以下格式规则:

  • 在方法名与其参数列表之前的左括号(间不要有空格
  • 左大括号{位于声明语句同行的末尾
  • 右大括号}另起一行,与相应的声明语句对齐,除非是一个空语句,}应紧跟在{之后

	class Sample extends Object {
	    int ivar1;
	    int ivar2;
	
	    Sample(int i, int j) {
	        ivar1 = i;
	        ivar2 = j;
	    }
	
	    int emptyMethod() {}
	
	    ...
	}

  • 方法与方法之间以空行分隔

PREVIOUS | CONTENTS | NEXT


书籍推荐