Java 速習チュートリアル

Java コンストラクタ

1. Java コンストラクタとは?

Javaにおけるコンストラクタ(Constructor)は、オブジェクトを初期化するために使用される特殊なメソッドです。

コンストラクタは、クラスのオブジェクトが作成されたときに呼び出されます。これを利用して、オブジェクトの属性(フィールド)に初期値を設定することができます。

例:
コンストラクタを作成する

// Mainクラスを作成
public class Main {
  int x;  // クラス属性(フィールド)を作成

  // Mainクラス用のクラスコンストラクタを作成
  public Main() {
    x = 5;  // クラス属性 x の初期値を設定
  }

  public static void main(String[] args) {
    Main myObj = new Main(); // Mainクラスのオブジェクトを作成(この時にコンストラクタが呼ばれる)
    System.out.println(myObj.x); // x の値を出力
  }
}
// 出力: 5

コンストラクタ名については、クラス名と完全に一致させる必要があり、また void のような戻り値の型(Return type)を持つことができない点に注意してください。

また、コンストラクタはオブジェクトが作成される瞬間に呼び出されることも重要なポイントです。

すべてのクラスはデフォルトでコンストラクタを持っています。自分でクラスコンストラクタを作成しなかった場合、Javaが自動的に作成します。ただし、その場合はオブジェクト属性に独自の初期値を設定することはできません。

2. コンストラクタのパラメータ(引数)

コンストラクタはパラメータ(引数)を受け取ることができ、これを使用して属性を初期化するのが一般的です。

以下の例では、コンストラクタに int y というパラメータを追加しています。コンストラクタの内部で xy を代入(x = y)します。コンストラクタを呼び出す際にパラメータ(5)を渡すことで、x の値が 5 に設定されます。

例:

public class Main {
  int x;

  public Main(int y) {
    x = y;
  }

  public static void main(String[] args) {
    Main myObj = new Main(5);
    System.out.println(myObj.x);
  }
}
// 出力: 5

パラメータは必要に応じていくつでも指定することができます。

例:

public class Main {
  int modelYear;
  String modelName;

  public Main(int year, String name) {
    modelYear = year;
    modelName = name;
  }

  public static void main(String[] args) {
    Main myCar = new Main(1969, "Mustang");
    System.out.println(myCar.modelYear + " " + myCar.modelName);
  }
}
// 出力: 1969 Mustang