两个声明之间有区别吗?有什么优点和缺点吗?哪个是首选。
class Car
{
CarLoan loan= new CarLoan();
}
VS
class Car
{
CarLoan loan;
Car()
{
loan = new CarLoan();
}
}
我认为在构造函数调用之前调用成员初始化。还有其他区别吗?
如果您有两个或多个构造函数并且每个构造函数的初始化值不同,那么您应该使用构造函数初始化,因为没有办法对成员初始化做同样的事情......
但是,如果您只有一个构造函数...您可以使用成员初始化来提高代码清晰度...
最后你的两个例子没有区别。
但是,如果您有多个成员,则直接初始化的成员将在调用的构造函数中的代码被调用之前构造。
您只需将其视为在所有构造函数中内联所有直接初始化的成员。
在对象创建期间,您可以在 Eclipse 调试器中很好地看到它。
如果您使用预初始化(成员初始化),那么 JVM 将像final关键字一样获得速度提升。类成员使用默认值初始化。这是一个好处。您是您的代码的所有者。我同意在某些情况下您可能会更改默认值,然后更改它并使用构造函数。我希望它有所帮助。