logo

Java でコンストラクターを使用する理由

このセクションでは、次のことを学びます Java でコンストラクターを使用する理由 そして 目的は何ですか そして コンストラクターの必要性 。これに合わせて、 コンストラクターの型。

Javaでは、 コンストラクタ という手法に似ています。コンストラクターの特性として、クラス名と同じ名前を持つ必要があります。戻り値の型はありません。コンストラクターを手動で呼び出す必要はありません。インスタンス化中に暗黙的に自動的に呼び出されます。

要素を追加する配列Java

つまり、コンストラクターは、オブジェクトの作成中に new 演算子を使用して実行時に呼び出されるメソッドです。オブジェクトを作成すると、JVM によって自動的に呼び出されます。クラス内でコンストラクターを定義しない場合、デフォルトのコンストラクターは常にクラス内に目に見えない形で存在します。コンストラクターを使用する理由は次のとおりです。

  • コンストラクターを使用して、オブジェクトをデフォルトまたは初期状態で初期化します。プリミティブのデフォルト値は、探しているものではない可能性があります。
  • コンストラクターを使用するもう 1 つの理由は、コンストラクターによって依存関係が通知されることです。つまり、コンストラクターを使用すると、そのクラスのユーザーに必要な依存関係を要求できます。
  • コンストラクターを見るだけで、このクラスを使用するために何が必要かを知ることができます。

つまり、コンストラクターを使用して、 クラスのインスタンス変数を初期化します。

コンストラクターの種類

Java には 2 種類のコンストラクターがあります。

春の雲
  • パラメータ化されたコンストラクター
  • デフォルトのコンストラクター

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

名前が示すように、引数 (パラメーター) を受け入れます。パラメータ化されたコンストラクターは、インスタンス化時に指定された値でインスタンス変数を動的に初期化する場合に使用されます。

 public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } } 

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

デフォルトのコンストラクターはパラメーターを受け入れません。これは、インスタンス変数を特定の値で初期化する場合に使用されます。すべての Java クラスには、目に見えないデフォルトのコンストラクターがあります。したがって、個別に定義する必要はありません。パラメーター化されたコンストラクターを作成すると、デフォルトのコンストラクターがクラスから削除されることに注意してください。

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

注: Java プログラムにコンストラクターを提供しない場合、Java コンパイラーはプログラマーに代わってデフォルトのコンストラクターを作成し、プログラムをコンパイルします。インスタンス変数をデフォルト値で初期化します。たとえば、整数の場合は 0、浮動小数点数の場合は 0.0、文字列の場合は null です。

プログラムを作成し、デフォルトのパラメーター化されたコンストラクターを使用してみましょう。

Employee クラスでは、2 つのコンストラクターを作成しました。1 つはデフォルトのコンストラクターで、もう 1 つはパラメーター化されたコンストラクターです。 Employee クラスには、名前と年齢という 2 つのプライベート変数があります。 main メソッドでは、クラスをインスタンス化し、両方のコンストラクターを使用しました。

従業員.java

javascript window.open
 import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } } 

出力:

 Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28