2 つの宣言に違いはありますか。長所と短所はありますか?どちらが好ましいです。
class Car
{
CarLoan loan= new CarLoan();
}
VS
class Car
{
CarLoan loan;
Car()
{
loan = new CarLoan();
}
}
コンストラクター呼び出しの前にメンバーの初期化が呼び出されると思います。他に違いはありますか?
2 つ以上のコンストラクターがあり、それぞれで初期化値が異なる場合は、メンバーの初期化で同じことを行う方法がないため、コンストラクターの初期化を使用する必要があります...
ただし、コンストラクターが 1 つしかない場合は、メンバーの初期化を使用してコードをわかりやすくすることができます...
事前初期化(メンバーの初期化)を使用すると、JVM はfinalキーワードのように速度が向上します。クラス メンバはデフォルト値で初期化されます。それは利点です。あなたはあなたのコードの所有者です。場合によっては、デフォルト値を変更してから変更してコンストラクターを使用することに同意します。お役に立てば幸いです。
最後に、両方の例に違いはありません。
ただし、複数のメンバーがある場合は、呼び出されたコンストラクターのコードが呼び出される前に、直接初期化されたメンバーが構築されます。
すべてのコンストラクターで直接初期化されたすべてのメンバーをインライン化するように考える必要があります。
オブジェクトの作成中に、Eclipse デバッガーで非常によく確認できます。