Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのコンストラクターとは?基本構文から実例までわかりやすく解説

Javaにおけるコンストラクター(constructor)は、記述方法こそメソッドに似ていますが、いくつかの重要な違いがあります。最大の特徴は、コンストラクター名がクラス名と同一である点と、戻り値の型を持たない点です。

コンストラクターは自分で呼び出す必要はありません。オブジェクトを生成(インスタンス化)する際に自動的に実行されます。主な役割は、クラスが持つインスタンス変数の初期化です。

コンストラクターの基本構文

コンストラクターは以下のように定義します。

class ClassName {
    ClassName() {
        // 初期化処理
    }
}

コンストラクター定義時のポイント

コンストラクターを記述する際には、次のルールを押さえておきましょう。

  • 戻り値の型を持たない(void も指定しない)。
  • 名前は必ずクラス名と同じにする。
  • abstract、final、static、synchronized 修飾子は付けられない。
  • アクセス修飾子として public、protected、private を指定できる。

サンプルコード

次の例では、コンストラクターの中でインスタンス変数 num と data を初期化しています。new によるオブジェクト生成時にコンストラクターが自動的に実行され、値が設定されているのが分かります。

public class Test {
   int num;
   String data;

   Test(){
      num = 100;
      data = "sample";
   }

   public static void main(String args[]){
      Test obj = new Test();
      System.out.println(obj.num);
      System.out.println(obj.data);
   }
}

実行結果

100
sample

補足:デフォルトコンストラクターについて

クラスにコンストラクターを1つも定義しなかった場合、Javaコンパイラーが自動的に「デフォルトコンストラクター」(引数なし・処理内容なし)を挿入します。このため、明示的に定義していなくても new クラス名() の形式でオブジェクトを生成できます。ただし、引数付きのコンストラクターを定義すると、デフォルトコンストラクターは自動生成されなくなるため注意が必要です。

  1. Java 9における@Deprecatedアノテーションの改善点とは?新要素「since」「forRemoval」を徹底解説

    @Deprecatedアノテーションとはクラス、メソッド、フィールドなど、プログラム内のあらゆる要素に付与できる@Deprecatedアノテーションは、「その要素はもはや使用すべきではない」ことを示すためのものです。要素が非推奨とされる主な理由は以下の通りです。使用すると危険であり、エラーを引き起こす可能性がある将来のバージョンで互換性がなくなる可能性がある将来のバージョンで削除される可能性があるより優れた、効率的な代替手段がすでに提供されているJava 9で追加された2つの新しい要素Java 9では、@DeprecatedアノテーションにsinceとforRemovalという2つの新しい属性

  2. JavaにおけるCursorクラスの役割とは?マウスカーソル制御の基本を解説

    JavaのCursorクラスとはCursorクラスは、Objectクラスのサブクラスであり、画面上のポイント(指し示す位置)やインジケーター(表示標識)として定義されます。ユーザーがマウスを使ってシステムへの入力を選択・操作する際に、その位置を視覚的に示す重要な役割を担っています。GUIアプリケーションでは、状況に応じてカーソルの形状を変えることで、ユーザーに対して直感的なフィードバックを提供できます。例えば、処理中であることを伝える砂時計型のカーソルや、クリック可能な要素を示す手型のカーソルなどが代表的な例です。利用可能なカーソルの種類Cursorクラスには、あらかじめ定義されたさまざまなカ