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

WBOY
リリース: 2023-08-27 15:41:07
転載
1400 人が閲覧しました

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

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

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

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

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

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

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

例 1

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

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

例 2

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

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

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

例 3

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

例 3

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

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

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

例 4

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

例 4

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

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

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

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

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!