🎯

【Java】クラス解説9・publicなコンストラクタとprivateなコンストラクタ

2024/01/05に公開

publicなコンストラクタとprivateコンストラクタ

下記のコード参照して、publicなコンストラクタとprivateなコンストラクタを比較します。


publicなコンストラクタ

public class Main {
    public static void main(String[] args) {
        // インスタンスを生成し、コンストラクタを呼び出す
        MyClass obj = new MyClass();
    }
}

class MyClass {
    // publicなコンストラクタ
    public MyClass() {
    }
}

MyClassクラスにあるコンストラクタはアクセス修飾子がpublicなので、
他クラスであるMainクラスからコンストラクタを呼び出しても、エラーを吐きません。


privateなコンストラクタ

public class Main {
    public static void main(String[] args) {
        // インスタンスを生成し、コンストラクタを呼び出す
        MyClass obj = new MyClass(); // -> コンパイルエラー
    }
}

class MyClass {
    // privateなコンストラクタ
    private MyClass() {
    }
}

MyClassクラスにあるコンストラクタはアクセス修飾子がprivateなので、
他クラスであるMainクラスからコンストラクタを呼び出しても、アクセスできないためコンパイルエラーとなります。

Discussion