0

两个声明之间有区别吗?有什么优点和缺点吗?哪个是首选。

class Car
{
   CarLoan loan= new CarLoan();
}

VS

class Car
{
   CarLoan loan;

   Car()
   {
       loan = new CarLoan();
   }
}

我认为在构造函数调用之前调用成员初始化。还有其他区别吗?

4

3 回答 3

1

如果您有两个或多个构造函数并且每个构造函数的初始化值不同,那么您应该使用构造函数初始化,因为没有办法对成员初始化做同样的事情......

但是,如果您只有一个构造函数...您可以使用成员初始化来提高代码清晰度...

于 2013-02-16T18:04:41.327 回答
0

最后你的两个例子没有区别。

但是,如果您有多个成员,则直接初始化的成员将在调用的构造函数中的代码被调用之前构造。

您只需将其视为在所有构造函数中内联所有直接初始化的成员。

在对象创建期间,您可以在 Eclipse 调试器中很好地看到它。

于 2013-02-16T18:22:49.807 回答
0

如果您使用预初始化(成员初始化),那么 JVM 将像final关键字一样获得速度提升。类成员使用默认值初始化。这是一个好处。您是您的代码的所有者。我同意在某些情况下您可能会更改默认值,然后更改它并使用构造函数。我希望它有所帮助。

于 2013-02-16T19:04:33.330 回答