Java のコンストラクター: "Void" と "非 Void"
Java プログラミング言語では、クラスにコンストラクターを含めることができます。は、クラスのインスタンスの作成時に呼び出される特別なメソッドです。コンストラクターは、オブジェクトの状態を初期化するために機能します。コンストラクターには、「void」コンストラクターと「non-void」コンストラクターの 2 種類があります。
「Non-Void」コンストラクター
「non-void」コンストラクターvoid 以外の戻り値の型を宣言しています。言い換えれば、値 (通常はクラス自体のインスタンス) を返します。 「非 void」コンストラクターが呼び出されると、新しいオブジェクトが作成され、戻り値がコンストラクターを呼び出した参照変数に割り当てられます。
「Void」コンストラクター
一方、「Void」コンストラクターは戻り値の型を宣言しません。代わりに、コンストラクター本体を実行してオブジェクトの状態を初期化するだけです。これらは値を返さないため、新しいオブジェクトの作成には使用できません。
コンストラクターの可視性の問題
Java では、コンストラクターには、コンストラクターと同じアクセス修飾子がありません。メソッド。コンストラクターの可視性は、クラス自体の可視性と一致する必要があります。たとえば、クラスが public として宣言されている場合、そのコンストラクターも public として宣言する必要があります。
例: コンストラクターの可視性への影響
次の 2 つのコード スニペットを考えてみましょう。
例 1: Return を含むコンストラクターType
public class Class1 { public static Integer value = 0; public Class1() { da(); } public int da() { Class1.value += 1; return 5; } public static void main(String[] args) { Class1 h = new Class1(); Class1 h2 = new Class1(); System.out.println(Class1.value); } }
例 2: Void 戻り値の型を持つコンストラクター
public class Class1 { public static Integer value = 0; public void Class1() { da(); } public int da() { Class1.value += 1; return 5; } public static void main(String[] args) { Class1 h = new Class1(); Class1 h2 = new Class1(); System.out.println(Class1.value); } }
観察:
例 1 では、出力は 2 です。これは、コンストラクターがda() メソッド。値フィールドを 1 ずつインクリメントします。
ただし、例 2 では、出力は 0 です。これは、戻り値の型が void のコンストラクターが実際には da() メソッドを呼び出していないためです。代わりに、これはクラスと同じ名前のメソッドであり、コンストラクターとは異なります。
結論:
Java では、コンストラクターはメソッドではありません。これらはオブジェクトの状態を初期化するために使用され、戻り値の型はありません。 void 以外の戻り値の型でコンストラクターを宣言しようとすると、コンパイル エラーが発生します。
以上がJava コンストラクター: Void コンストラクターと非 Void コンストラクターの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。