ホームページ >Java >&#&チュートリアル >Java であるコンストラクターを別のコンストラクターから呼び出すにはどうすればよいですか?

Java であるコンストラクターを別のコンストラクターから呼び出すにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-31 05:41:09958ブラウズ

How Can I Call One Constructor from Another in Java?

Java での別のコンストラクターからの呼び出し

Java では、同じクラス内の別のコンストラクターからコンストラクターを呼び出すことができます。これは、親コンストラクターによって提供される値でオブジェクトを初期化する場合や、特定の条件に基づいてオブジェクトの状態をカスタマイズする場合など、さまざまなシナリオで役立ちます。

別のコンストラクターを呼び出すには、this を使用するだけです。次の例に示すように、 キーワードの後に​​他のコンストラクターとそのパラメーターの名前が続きます。

public class Foo {
    private int x;

    public Foo() {
        this(1);  // Call the Foo(int x) constructor with the value 1
    }

    public Foo(int x) {
        this.x = x;
    }
}

この例では、デフォルトコンストラクター Foo() は、値 1 で Foo(int x) コンストラクターを呼び出します。その結果、引数を指定せずに Foo オブジェクトが作成されると、その x フィールドは自動的に 1 に設定されます。

注意することが重要です。チェーンできるコンストラクターは 1 つだけであり、この呼び出しはコンストラクター本体の最初のステートメントである必要があります。さらに、スーパークラスからコンストラクターを呼び出す必要がある場合は、this の代わりに super を使用します。

たとえば、次のシナリオを考えてみましょう。

public class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public Animal() {
        this("Default Animal");  // Call the Animal(String name) constructor with the default name "Default Animal"
    }
}

この場合、両方のコンストラクター (1 つはパラメーターあり、もう 1 つはパラメーターなし) が スーパークラス コンストラクターを呼び出します。それぞれ name パラメータまたはデフォルト値を使用します。これにより、すべての Animal オブジェクトの name プロパティを初期化できます。

あるコンストラクターから別のコンストラクターを呼び出す機能を活用することで、開発者はカスタマイズ可能なオブジェクト初期化を使用して複雑なクラス階層を作成し、新しく作成されたオブジェクトの一貫性のある予測可能な状態を確保できます。オブジェクト。

以上がJava であるコンストラクターを別のコンストラクターから呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。