6 - 声明

6.1 每行声明变量的数量

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

  1. int level; // indentation level
  2. int size; // size of table

要优于

  1. int level, size;

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

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

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

  1. int level; // indentation level
  2. int size; // size of table
  3. Object currentEntry; // currently selected table entry

6.2 初始化

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

6.3 布局

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

  1. void myMethod() {
  2. int int1 = 0; // beginning of method block
  3. if (condition) {
  4. int int2 = 0; // beginning of "if" block
  5. ...
  6. }
  7. }

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

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

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

  1. int count;
  2. ...
  3. myMethod() {
  4. if (condition) {
  5. int count = 0; // 避免!
  6. ...
  7. }
  8. ...
  9. }

6.4 类和接口的声明

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

  • 在方法名与其参数列表之前的左括号(间不要有空格
  • 左大括号{位于声明语句同行的末尾
  • 右大括号}另起一行,与相应的声明语句对齐,除非是一个空语句,}应紧跟在{之后
  1. class Sample extends Object {
  2. int ivar1;
  3. int ivar2;
  4. Sample(int i, int j) {
  5. ivar1 = i;
  6. ivar2 = j;
  7. }
  8. int emptyMethod() {}
  9. ...
  10. }
  • 方法与方法之间以空行分隔

PREVIOUS | CONTENTS | NEXT