デフォルトコンストラクターとは

デフォルトコンストラクターは、オブジェクト指向プログラミングでオブジェクトを作成および初期化する特殊なメソッドです。 コンストラクターには複数の種類がありますが、デフォルトのコンストラクターは、オブジェクトの作成と初期化に加えて、2つの特定の基準のいずれかを満たす必要があります。 パラメーターを持たない必要があります。パラメーターがない場合は、nullaryコンストラクターとも呼ばれるか、設定可能なすべてのパラメーターにデフォルト値を割り当てる必要があります。 一部のコンピューター言語は、プログラマーがコンストラクターをまったく指定しない場合、暗黙的にデフォルトのnullaryコンストラクターを指定します。 任意のタイプのコンストラクターを作成すると、デフォルトのnullaryコンストラクターは指定されなくなり、必要に応じて明示的に作成する必要があります。

オブジェクト指向の継承を許可するコンピューター言語では、サブクラスのデフォルトコンストラクターをスーパークラスのコンストラクターに正確に接続する必要があります。 サブクラスコンストラクターは、サブクラス固有の処理を行う前に、常にスーパークラスコンストラクターを呼び出す必要があります。 Java®などの一部の言語では、サブクラスコンストラクターがスーパークラスの既定のnullaryコンストラクターを暗黙的に呼び出します。 スーパークラスのデフォルトnullaryコンストラクターが存在しない場合、サブクラスオブジェクトを適切に構築できません。 この場合、サブクラスはどちらのタイプのデフォルトコンストラクターでも保持できますが、使用可能なスーパークラスコンストラクターは、サブクラスに固有のデフォルト値を渡すなどして、正しく呼び出す必要があります。

デフォルトのnullコンストラクターの暗黙的な生成には、プログラマーが指定および文書化しなければならないメソッドの数を減らすという利点がありますが、コードの保守と理解がより困難になるという欠点もあります。 一部のプログラマーは、デフォルトコンストラクターの省略は悪い習慣であると考えていますが、他のプログラマーはそうではありません。 個々のプログラマーがこれらのプログラミング方法のいずれかに固執することを妨げるものは何もありません。そのため、コードにデフォルトのヌルコンストラクターを含めることは、主にプログラマー側のスタイル上の選択です。 コンストラクターが含まれている場合、ほとんどの思想家は、他のコンストラクターやメソッドと同様に、コメントを付けて文書化する必要があると指示しています。

デフォルトのコンストラクターには、アクセス修飾子を付加して、コンストラクターをパブリック、プロテクト、またはプライベートにすることができます。 これにより、指定されたクラスに基づいて、コンストラクターに特定の機能が与えられます。 パブリックデフォルトコンストラクターを使用して、別のクラスから新しいオブジェクトを作成できますが、保護されたコンストラクターは、独自のクラスとサブクラスからのみ呼び出すことができます。 保護されたデフォルトコンストラクターは、継承階層でよく見られます。 通常、プライベートコンストラクターは、プログラマではなく、何らかのメソッドを呼び出すことができる自己完結型のクラスでのみ使用されます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?