🎯
【Java】クラス解説9・publicなコンストラクタとprivateなコンストラクタ
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