Java のデフォルトコンストラクタ

Rashmi Patidar 2023年10月12日
  1. Java のデフォルトコンストラクタ
  2. Java のパラメーター化されたコンストラクター
Java のデフォルトコンストラクタ

Java 言語では、コンストラクターという用語は、プログラミングで実行するメソッドに似ています。コンストラクターの作成時に留意する必要のあるいくつかのプロパティがあります。

  1. コンストラクターの名前は、常にクラス名の名前と同じである必要があります。
  2. コンストラクターの戻り型があってはなりません。
  3. クラスには、パラメーター化されたコンストラクターと引数なしコンストラクター(デフォルトのコンストラクター)を含めることができます。
  4. オブジェクトがインスタンス化されると、コンストラクターは常に呼び出されます。
  5. コンストラクターは、abstractstaticfinal、および synchronized のようなキーワードを使用しないでください。

Java のデフォルトコンストラクタ

Java のデフォルトコンストラクタは、引数なしコンストラクタと呼ばれることがよくあります。以下では、コードブロックをチェックして、Java のデフォルトコンストラクターを理解できます。

public class Main {
  public static void main(String[] args) {
    B b = new B();
    System.out.println(b.a);
  }
}

class B {
  int a;
}

上記のコードブロックでは、2つのクラスがあることがわかります。1つは main メソッドを保持し、もう 1つはコンストラクターの機能を表すために作成されています。

main 関数はプログラムのエントリポイントであり、ここから実行が開始されます。したがって、ドライバークラスステートメント new B() は、B クラスのパブリック no-argument コンストラクターを呼び出します。指定されたコンストラクターの明示的な定義がなかったため、コンパイラーは独自にデフォルトコンストラクターを作成し、上記のステートメントでそれを呼び出します。

コンストラクターは、クラスの変数を初期化します。コンストラクターが定義されていない場合、コンパイラーは変数の値をデフォルトに初期化します。B クラスの変数 aprintln 関数で参照されると、出力される値は以下の出力になります。

出力:

0

Java のパラメーター化されたコンストラクター

パラメーター化されたコンストラクターの使用は、オブジェクトの作成時にパラメーターの数を渡すことです。以下は、その機能を示すコードブロックです。

public class Main {
  public static void main(String[] args) {
    A a = new A(1, "One");
    System.out.println(a.a + " " + a.b);
    //      A a1= new A();
  }
}

class A {
  int a;
  String b;

  A(int a, String b) {
    this.a = a;
    this.b = b;
  }
}

上記のコードブロックで、A はパラメーター化されたコンストラクターを示すクラスです。もう 1つは、main メソッドを保持するクラスです。関数内で、new A(1, "One") ステートメントは、A クラスのパラメーター化されたコンストラクターを内部的に呼び出します。作成されたオブジェクトはクラスの参照に割り当てられ、コンストラクターの定義はクラスで定義されます。

コンストラクターA(int a, String b) は、a 変数と b 変数の値を初期化します。パラメータで渡された値は、変数にコピーされます。println 関数で、参照変数を使用すると、A クラスのクラス変数が呼び出されます。インスタンス化された値を、間にスペースを追加して出力に出力します。

その隣にコメント文があります。//演算子を使用して実行されたステートメントについてコメントします。ステートメント new A() は、クラスの引数なしコンストラクターを内部的に見つけようとします。コンパイラーがデフォルトのコンストラクターを見つけられない場合は、デフォルトのコンストラクターを作成できます。

この機能は、明示的なコンストラクターが定義されていない場合に限定されます。したがって、この場合、ユーザーは no-args コンストラクターを手動で作成する必要があります。A a1= new A(); 関数はコンパイル時エラーをスローします。この問題を解決するための 2つのオプションは、デフォルトコンストラクターを作成するか、既存のステートメントをブレークに導く既存のパラメーター化されたコンストラクターの署名を変更することです。したがって、その行はコメント化されています。

出力:

1 One
著者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

関連記事 - Java Constructor