いいえ、Main
クラスではSample
クラスのインスタンスを作成して、その際にコンストラクタを呼び出してvalue
フィールドを初期化しています。つまり、Main
クラスで特別にvalue
フィールドを初期化する必要はありません。すべてがコンストラクタで行われます。
以下がその例です:
package ex25.a;
public class Sample {
public String value; // フィールドの宣言
public Sample(String value) { // コンストラクタで初期化
this.value = value;
}
}
package ex25.b;
import ex25.a.Sample;
public class Main {
public static void main(String[] args) {
Sample s = new Sample("Hello Java"); // コンストラクタ呼び出し
System.out.println(s.value); // 初期化されたvalueを出力
}
}
Main
クラスでは、次のステップを実行しています:
-
Sample
クラスのインスタンスを作成する際に、コンストラクタSample(String value)
を呼び出し、"Hello Java"
という値を渡しています。 -
Sample
クラスのコンストラクタは、この値をvalue
フィールドに割り当てます。 -
System.out.println(s.value);
で、初期化されたvalue
フィールドの値を出力します。
したがって、Main
クラスで追加の初期化を行う必要はありません。このままで正しく動作し、"Hello Java"
が出力されます。
Top comments (0)