2016-05-01 7 views
0

コンストラクタは、オブジェクトのデータフィールドを初期化することがわかっています。今私たちのクラスにフィールドがない場合、コンストラクタで初期化するものはありません。フィールドのないクラスにはコンストラクタがあります。出来ますか ?

このようなクラスでコンストラクタは何をしますか?

+0

言語は何ですか? –

+0

私はJavaを使用しています.... –

答えて

1

データフィールドを初期化するのがコンストラクタの最も明白な目的ですが、決して唯一のものではありません。

コンストラクタの主な目的は、クラスのオブジェクトを作成することです。オブジェクトを持たずに、クラスの非静的メソッドを呼び出すことはできません。クラスにデータフィールドがない場合、非静的メソッドは意味を持ちませんが、派生クラスにはデータフィールドがある可能性があるため、これは当てはまりません。

一般的に、クラスはクラス階層の一部であると考えるべきです。 (Javaでは、すべてのクラスがObjectから派生しているため、常にそうです。)コンストラクタは通常、基本クラスのコンストラクタを呼び出します。

コンストラクターにも副作用があります。例として、ログファイルに書き込まれるメッセージがあります。生成されたオブジェクトは、コンストラクタが呼び出されるときに、いくつかのリストに登録することもできます。

関連する問題