如果我可以用另一种方式初始化实例变量,为什么我应该使用构造函数

Eug*_*ene 2 java

为什么我应该使用构造函数来初始化实例变量,而这可能是在它们声明的时候?

class Frog {
     public int x = 4;
     Frog() { // Why should I use you }
}
Run Code Online (Sandbox Code Playgroud)

小智 9

您应该使用我,因为我会帮助您将初始化保存在一个地方.因为它可以帮助你的其他同事知道在哪里进行初始化,如果他们分散了代码,就不会错过.


Vot*_*ple 6

如果您需要的唯一初始化具有public int x = 4多样性,则不需要构造函数.

如果你正在进行的初始化比这更复杂,你需要一个构造函数.也许您需要打开数据库连接.或者(更简单地)将x在构造时通过实例化方法提供值.例如:Frog f = new Frog(4);

  • 你总是会有一个构造函数.如果找不到,编译器将生成一个空的无参数构造函数. (3认同)
  • 是的,但编译器所做的很少是开发人员感兴趣的.你是否必须**写**构造函数是个问题.我不在乎编译器是否在字节码中添加了果蝇巢,如果我不必写它的话. (2认同)