ホームページ > Java > &#&チュートリアル > Java コンストラクター: 「void」 コンストラクターと「non-void」 コンストラクターの違いは何ですか?

Java コンストラクター: 「void」 コンストラクターと「non-void」 コンストラクターの違いは何ですか?

Barbara Streisand
リリース: 2024-11-27 12:06:14
オリジナル
620 人が閲覧しました

Java Constructors: What's the Difference Between

Java コンストラクターについて: "void" と "non-void"

Java では、コンストラクターは、クラスのインスタンス。通常のメソッドとは異なり、コンストラクターは戻り値の型を指定しません。代わりに、クラス自体と同じ名前が付けられます。ただし、Java では、いわゆる「void」コンストラクターを許可することで混乱が生じる可能性があります。

例 1: 非 Void コンストラクター

次のコードでは、コンストラクター class1( ) は return を指定せずに宣言されていますtype:

public class class1 {
    public static Integer value = 0;
    public class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 2
    }
}
ログイン後にコピー

説明:

  • class1() コンストラクターは、値静的フィールドを 0 に初期化します。
  • インスタンス h class1 の h2 と h2 が作成され、コンストラクターが呼び出されます。
  • da() メソッドは値をインクリメントし、最終的な値は 2 になります。

例 2: Void コンストラクター

次に、「void」を使用したこのコードを考えてみましょう。コンストラクター:

public class class1 {
    public static Integer value = 0;
    public void class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 0
    }
}
ログイン後にコピー

説明:

  • class1() の「void」コンストラクターは、値フィールドを初期化したり、メソッドを呼び出したりしません。
  • インスタンス h と h2 が作成されると、デフォルトのコンストラクターが呼び出されますが、何も実行されません。
  • 結果として、値フィールドは初期値 0 のままになります。

結論:
Java では、戻り値の型を宣言するコンストラクター、たとえ void であっても、コンストラクターではありません。それらは単なるメソッドです。クラス インスタンスを初期化する真のコンストラクターは、戻り値の型を指定しません。コンストラクターが明示的に定義されていない場合、Java は初期化を行わないデフォルトのコンストラクターを自動的に追加します。この区別を理解することは、Java でクラスを正しく初期化するために非常に重要です。

以上がJava コンストラクター: 「void」 コンストラクターと「non-void」 コンストラクターの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート