DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

13章25

いいえ、MainクラスではSampleクラスのインスタンスを作成して、その際にコンストラクタを呼び出してvalueフィールドを初期化しています。つまり、Mainクラスで特別にvalueフィールドを初期化する必要はありません。すべてがコンストラクタで行われます。

以下がその例です:

package ex25.a;

public class Sample {
    public String value; // フィールドの宣言
    public Sample(String value) { // コンストラクタで初期化
        this.value = value;
    }
}
Enter fullscreen mode Exit fullscreen mode
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を出力
    }
}
Enter fullscreen mode Exit fullscreen mode

Mainクラスでは、次のステップを実行しています:

  1. Sampleクラスのインスタンスを作成する際に、コンストラクタSample(String value)を呼び出し、"Hello Java"という値を渡しています。
  2. Sampleクラスのコンストラクタは、この値をvalueフィールドに割り当てます。
  3. System.out.println(s.value);で、初期化されたvalueフィールドの値を出力します。

したがって、Mainクラスで追加の初期化を行う必要はありません。このままで正しく動作し、"Hello Java"が出力されます。

Top comments (0)