広告 Java入門

【Java入門】コンストラクタとは

はじめに

前回の記事では、Javaのメソッドについて紹介しました。

本記事では、Javaのコンストラクタについて紹介します。

コンストラクタとは

コンストラクタとは、オブジェクトの生成(インスタンスの生成)とともに自動的に呼び出される特殊なメソッドです。

次の例のように「new Sample()」とSampleクラスのオブジェクトを生成するタイミングでコンストラクタは動作します。

コンストラクタの呼び出し

 

コンストラクタは、クラス名と同じ名前にします。

そして、コンストラクタには戻り値がありません。値を返すことができないので、return と書くとコンパイルエラーが発生します。また、コンストラクタはメソッドと同様に引数を持つこともできます。

コンストラクタの例

コンストラクタは、フィールドの初期化などに利用します。

スポンサーリンク

引数ありのコンストラクタ

コンストラクタには、引数をつけることもできます。次の例では、引数なしのコンストラクタと引数ありのコンストラクタを2つ定義しています。

[コンストラクタの例]

public class Cat {
    String name = "ミー";
    
    /**
     * コンストラクタ
     */
    public Cat() {
        System.out.println("コンストラクタ(引数なし)が動作。nameの値:" + name);
    }
    
    /**
     * コンストラクタ
     * @param name 名前
     */
    public Cat(String name) {
        this.name = name;
        System.out.println("コンストラクタ(引数あり)が動作。nameの値:" + name);
    }
}
this.nameの「this」はフィールド「name」のことをあらわしています。「this」は省略可能で、今回の例のように名前が同じ場合につけることで区別することができます。

 

それでは、まず引数なしのコンストラクタを使ったCatクラスのオブジェクトを生成してみます。

[引数なしのコンストラクタ実行例]

public class MainSample {

    public static void main(String[] args) {
        
        // デフォルトコンストラクタを使ってオブジェクトを作成
        Cat cat = new Cat();
    }
}

[実行結果]

コンストラクタ(引数なし)が動作。nameの値:ミー

 

次に引数ありのコンストラクタを使ってCatクラスのオブジェクトを生成します。

[引数ありのコンストラクタ実行例]

public class MainSample2 {

    public static void main(String[] args) {
        
        // 引数ありコンストラクタを使ってオブジェクトを作成
        Cat cat = new Cat("ネネ");

    }
}

[実行結果]

コンストラクタ(引数あり)が動作。nameの値:ネネ

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

クラス内にコンストラクタを記述しない場合は、引数なしのコンストラクタが自動的に用意されます。これを「デフォルトコンストラクタ」といいます。

クラスにコンストラクタの記述がない場合、Javaコンパイラが自動的に引数なしのコンストラクタを作成してくれます。これが「デフォルトコンストラクタ」です。

終わりに

本記事では、Javaのコンストラクタについて紹介しました。

次回の記事では、Javaのオーバーロードについて紹介します。

helpful