ホームページ  >  記事  >  Java  >  Java での再帰的なコンストラクター呼び出し

Java での再帰的なコンストラクター呼び出し

WBOY
WBOY転載
2023-08-27 15:41:071425ブラウズ

Java での再帰的なコンストラクター呼び出し

コンストラクターの再帰呼び出しは、コンストラクターがそれ自体を呼び出すときに発生するコンパイル時エラーです。これは、メソッドが必要なだけ自分自身を呼び出す再帰に似ています。自分自身を呼び出すメソッドは再帰的メソッドと呼ばれ、自分自身を呼び出すコンストラクターは再帰的コンストラクターと呼ばれます。

この記事では、Java での再帰的コンストラクター呼び出しエラーについて、いくつかの例を通して学びます。

再帰的なコンストラクター呼び出し

###コンストラクタ###

これはメソッドに非常に似ていますが、違いは、メソッドがオブジェクトの動作を定義するのに対し、コンストラクターはこれらのオブジェクトの初期化に使用されることです。メソッドには任意の名前を付けることができますが、コンストラクターはクラス名と同じである必要があります。さらに、メソッドは値を返すことができますが、コンストラクターは戻り値の型を持たないため、値を返しません。

ユーザーがコンストラクターを作成しない場合、Java コンパイラーは自動的にコンストラクターを作成します (これをデフォルト コンストラクターと呼びます)。

例 1

リーリー ###出力### リーリー

コンストラクターとメソッドの類似点にもかかわらず、Java では再帰コンストラクターは許可されません。これは悪いプログラミング手法です。

例 2

次の例は、再帰的なコンストラクター呼び出しエラーを示しています。

ここではクラスを作成し、そのコンストラクターと 2 つのパラメーターを定義します。次に、その本体内で同じコンストラクターを呼び出します。

リーリー ###出力### リーリー

例 3

の中国語訳は次のとおりです:

例 3

次の例では、コンストラクター内でオブジェクトを定義して、Java がコンストラクター内でオブジェクトを作成できるかどうかを確認します。

リーリー ###出力### リーリー

コンストラクター内でオブジェクトを作成するとオブジェクト作成の無限ループが発生するため、StackOverflowError エラーが発生しました。

例 4

の中国語訳は次のとおりです:

例 4

次の例は、別のコンストラクター内でコンストラクターを呼び出すことが正当であることを示しています。

リーリー ###出力### リーリー ###結論は###

Java ではコンストラクターの再帰が許可されていないため、このプログラミング方法は明らかに避けるべきです。この記事では、コンストラクターの説明から始めて、再帰コンストラクターについて説明します。さらに、無限ループが原因で発生する StackOverflowError と呼ばれる別のエラーも見つかりました。

以上がJava での再帰的なコンストラクター呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。