🎯

【Java】クラス解説6・仮引数のあるコンストラクタ

2024/01/04に公開

仮引数のあるコンストラクタ

仮引数のあるコンストラクタはデフォルトコンストラクタと異なり、必ず明示的に定義しなければなりません。

仮引数のあるコンストラクタのコード例

public class Main {
    public static void main(String[] args) {
        MyClass obj = new MyClass("fuzi");
        obj.printName(); // 出力結果 -> fuzi
        
    }
}

class MyClass {
    String name;
    
    // 仮引数のあるコンストラクタ
    public MyClass(String n) {
        name = n;
    }
    
    void printName() {
        System.out.println(name);
    }

}

コードの解説

MyClass obj = new MyClass("fuzi");

左辺はMyClass型の変数objを宣言し、右辺はnew演算子によりMyClassの新しいインスタンスを作成し、MyClass()によりコンストラクタを呼び出し、実引数"fuzi"をコンストラクタに渡しています。


obj.printName();

objが参照しているMyClassのprintNameメソッドを呼び出しています。


String name;

これはString型のインスタンス変数nameを定義しています。


public MyClass(String n) {
        name = n;
    }

これが仮引数のあるコンストラクタです。
String型の仮引数nに実引数"fuji"を渡され、それをインスタンス変数nameに代入しています。


void printName() {
        System.out.println(name);
    }

戻り値なし(void)のprintNameメソッドを定義しています。
処理内容は、標準出力にインスタンス変数name(=fuzi)を出力します。

Discussion