小编典典

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

all

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

public class ME {
    private int i;

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

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

public class ME {
    private int i = 100;

    public ME() {
    }
}

我遇到了其他源代码,有些使用第一种约定,另一些使用第二种约定。

我可以知道你们都推荐哪种公约,为什么?


阅读 80

收藏
2022-05-22

共1个答案

小编典典

我发现第二种风格(一次性声明+初始化)更好。原因:

  • 它使变量的初始化方式一目了然。通常,在读取程序并遇到变量时,您将首先进入其声明(在 IDE 中通常是自动的)。使用样式 2,您会立即看到默认值。对于样式 1,您还需要查看构造函数。
  • 如果您有多个构造函数,则不必重复初始化(并且您不能忘记它们)。

当然,如果初始化值在不同的构造函数中不同(甚至是在构造函数中计算出来的),就必须在构造函数中进行。

2022-05-22