は、クラス定義の二つの方法を参照してください。クラス変数はいつロードされますか?
//definition: 1
public class MyClass{
private MyObject obj = new MyObject();
private String str = "hello world";
// constructor
public MyClass(){
}
}
// definition: 2
public class MyClass{
private MyObject obj = null;
private String str = null;
// constructor
public MyClass(){
obj = new MyClass();
str = "HelloWorld";
}
}
私の質問は:クラス変数がロードされたとき。それらはどのように読み込まれますか?
どのように初期化されますか?初期化が定義1のように行われる場合、コンストラクタの目的は何ですか?
クラスを定義する好ましい方法は何ですか?その理由は何ですか? C++/C#/ Javaでの動作は同じですか?あるいは、この動作はそれらの動作が異なりますか?
上記の説明を歓迎します。
このISNそれは言語に依存するかもしれないし、言葉の特定の実装にも依存するかもしれないので、本当に言語に無関係ではない。 – Avi