一尘不染

Java我应该在构造函数内部还是外部初始化变量

java

当我基于C ++知识使用Java时,我喜欢使用以下方式初始化变量。

public class ME {
    private int i;

    public ME() {
         this.i = 100;
    }
}

一段时间后,我改变了习惯

public class ME {
    private int i = 100;

    public ME() {
    }
}

我碰到了其他源代码,有些使用1st约定,有些使用2nd约定。

我可以知道大家都推荐哪种惯例,为什么?


阅读 374

收藏
2020-03-03

共1个答案

一尘不染

我发现第二种样式(一口气声明和初始化)更出色。原因:

  • 一目了然,该变量是如何初始化的。通常,在读取程序并遇到变量时,首先会去声明它(在IDE中通常是自动的)。使用样式2,你会立即看到默认值。对于样式1,你还需要查看构造函数。
  • 如果你有多个构造函数,则不必重复初始化(并且你不会忘记它们)。
    当然,如果不同构造函数中的初始化值不同(甚至在构造函数中计算得出),则必须在构造函数中进行初始化。
2020-03-03