いいえ、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)