工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java コンストラクター

Java コンストラクター

このチュートリアルでは、Java コンストラクター、そのタイプ、および例を使用してそれらを使用する方法について学習します。

コンストラクタとは?

Java のコンストラクターは、クラスのオブジェクトが作成されるときに呼び出されるメソッドに似ています。

Java メソッドとは異なり、コンストラクターはクラスと同じ名前を持ち、戻り値の型はありません。たとえば、

class Test {
  Test() {
    // constructor body
  }
}

ここで、Test() コンストラクタです。クラスと同じ名前で、戻り値の型はありません。

推奨読書: コンストラクターが値を返さない理由


例 1:Java コンストラクター

class Main {
  private String name;

  // constructor
  Main() {
    System.out.println("Constructor Called:");
    name = "Programiz";
  }

  public static void main(String[] args) {

    // constructor is invoked while
    // creating an object of the Main class
    Main obj = new Main();
    System.out.println("The name is " + obj.name);
  }
}

出力 :

Constructor Called:
The name is Programiz

上記の例では、Main() という名前のコンストラクターを作成しました。 .コンストラクター内で、 name の値を初期化しています

Main のオブジェクトを作成するステートメントに注意してください クラス。

Main obj = new Main();

ここで、オブジェクトが作成されると、 Main() コンストラクターが呼び出されます。そして、name の値 変数が初期化されます。

したがって、プログラムは name の値を出力します Programiz の変数 .


コンストラクタの種類

Java では、コンストラクターは 3 つのタイプに分けることができます:

<オール>
  • 引数なしのコンストラクタ
  • パラメータ化されたコンストラクタ
  • デフォルトのコンストラクタ

  • 1. Java No-Arg コンストラクター

    メソッドと同様に、Java コンストラクターにはパラメーター (引数) がある場合とない場合があります。

    コンストラクターがパラメーターを受け入れない場合、それは引数のないコンストラクターとして知られています。たとえば、

    private Constructor() {
       // body of the constructor
    }

    例 2:Java プライベート引数なしコンストラクタ

    class Main {
    
      int i;
    
      // constructor with no parameter
      private Main() {
        i = 5;
        System.out.println("Constructor is called");
      }
    
      public static void main(String[] args) {
    
        // calling the constructor without any parameter
        Main obj = new Main();
        System.out.println("Value of i: " + obj.i);
      }
    }

    出力 :

    Constructor is called
    Value of i: 5

    上記の例では、コンストラクター Main() を作成しました。 .ここで、コンストラクターはパラメーターを受け入れません。したがって、これは引数のないコンストラクターとして知られています。

    コンストラクタをプライベートとして宣言したことに注意してください。

    コンストラクターが宣言されたら private 、クラス外からはアクセスできません。そのため、プライベート コンストラクターを使用してクラス外からオブジェクトを作成することは禁止されています。

    ここでは、同じクラス内にオブジェクトを作成しています。したがって、プログラムはコンストラクターにアクセスできます。詳細については、Java 実装プライベート コンストラクターを参照してください。

    ただし、クラス外でオブジェクトを作成する場合は、コンストラクターを public として宣言する必要があります。 .

    例 3:Java public no-arg コンストラクタ

    class Company {
      String name;
    
      // public constructor
      public Company() {
        name = "Programiz";
      }
    }
    
    class Main {
      public static void main(String[] args) {
    
        // object is created in another class
        Company obj = new Company();
        System.out.println("Company name = " + obj.name);
      }
    }

    出力 :

    Company name = Programiz

    推奨読書: Java アクセス修飾子


    2. Java パラメータ化コンストラクタ

    Java コンストラクターは、1 つ以上のパラメーターを受け入れることもできます。このようなコンストラクターは、パラメーター化されたコンストラクター (パラメーターを持つコンストラクター) として知られています。

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

    class Main {
    
      String languages;
    
      // constructor accepting single value
      Main(String lang) {
        languages = lang;
        System.out.println(languages + " Programming Language");
      }
    
      public static void main(String[] args) {
    
        // call constructor by passing a single value
        Main obj1 = new Main("Java");
        Main obj2 = new Main("Python");
        Main obj3 = new Main("C");
      }
    }

    出力 :

    Java Programming Language
    Python Programming Language
    C Programming Language

    上記の例では、Main() という名前のコンストラクターを作成しました。 .ここで、コンストラクターは 1 つのパラメーターを取ります。表現に注目してください、

    Main obj1 = new Main("Java");

    ここでは、単一の値をコンストラクターに渡しています。渡された引数に基づいて、コンストラクター内で言語変数が初期化されます。


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

    コンストラクターを作成しない場合、Java コンパイラーは、プログラムの実行中に引数なしのコンストラクターを自動的に作成します。このコンストラクターは、デフォルト コンストラクターと呼ばれます。

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

    class Main {
    
      int a;
      boolean b;
    
      public static void main(String[] args) {
    
        // A default constructor is called
        Main obj = new Main();
    
        System.out.println("Default Value:");
        System.out.println("a = " + obj.a);
        System.out.println("b = " + obj.b);
      }
    }

    出力 :

    a = 0
    b = false

    ここでは、コンストラクターを作成していません。したがって、Java コンパイラはデフォルトのコンストラクタを自動的に作成します。

    デフォルト コンストラクターは、初期化されていないインスタンス変数をデフォルト値で初期化します。

    タイプ デフォルト値
    boolean
    byte 0
    short 0
    int 0
    long 0L
    char \u0000
    float 0.0f
    double 0.0d
    object ヌル参照

    上記のプログラムでは、変数 ab デフォルト値 0 で初期化されます と false

    上記のプログラムは以下と同等です:

    class Main {
    
      int a;
      boolean b;
    
      // a private constructor
      private Main() {
        a = 0;
        b = false;
      }
    
      public static void main(String[] args) {
        // call the constructor
        Main obj = new Main();
    
        System.out.println("Default Value:");
        System.out.println("a = " + obj.a);
        System.out.println("b = " + obj.b);
      }
    }

    プログラムの出力は例 5 と同じです。


    Java コンストラクタに関する重要事項


    Java でのコンストラクターのオーバーロード

    Java メソッドのオーバーロードと同様に、異なるパラメーターを持つ 2 つ以上のコンストラクターを作成することもできます。これは、コンストラクターのオーバーロードと呼ばれます。

    例 6:Java コンストラクターのオーバーロード

    class Main {
    
      String language;
    
      // constructor with no parameter
      Main() {
        this.language = "Java";
      }
    
      // constructor with a single parameter
      Main(String language) {
        this.language = language;
      }
    
      public void getName() {
        System.out.println("Programming Langauage: " + this.language);
      }
    
      public static void main(String[] args) {
    
        // call constructor with no parameter
        Main obj1 = new Main();
    
        // call constructor with a single parameter
        Main obj2 = new Main("Python");
    
        obj1.getName();
        obj2.getName();
      }
    }

    出力 :

    Programming Language: Java
    Programming Language: Python

    上記の例では、2 つのコンストラクターがあります:Main()Main(String language) .ここでは、両方のコンストラクターが変数 language の値を異なる値で初期化します。

    オブジェクトの作成中に渡されたパラメーターに基づいて、さまざまなコンストラクターが呼び出され、さまざまな値が割り当てられます。

    あるコンストラクターを別のコンストラクターから呼び出すこともできます。詳細については、Java Call One Constructor from Another を参照してください。

    注意 :this を使用しました クラスの変数を指定するキーワード。 this についてもっと知りたい キーワード、Java このキーワードにアクセスしてください。


    Java

    1. C++ コンストラクター
    2. Java オペレーター
    3. Java コメント
    4. Java for-each ループ
    5. Java コンストラクター
    6. Java 文字列
    7. Java このキーワード
    8. Java インターフェイス
    9. Java匿名クラス
    10. Java 列挙型コンストラクター
    11. Java try-with-resources