Code Conventions for the Java Programming Language 中文翻译《Java 编码规范》

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