在 Java 中,**private 构造器(私有构造方法)**是指用 private 修饰的构造方法,外部类无法直接通过 new 来创建其实例。它的主要用途如下:
最常见用途,保证一个类只有一个实例。
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {} // 私有构造器
public static Singleton getInstance() {
return INSTANCE;
}
}
防止被实例化(如 Math、Collections)。
public class Utils {
private Utils() {
throw new AssertionError(); // 防止反射调用
}
public static int add(int a, int b) {
return a + b;
}
}
对象创建逻辑控制在类内部,构造器不对外暴露。
public class User {
private final String name;
private User(String name) {
this.name = name;
}
public static User create(String name) {
return new User(name);
}
}
Java 枚举的构造器默认就是 private 的。
enum Color {
RED, GREEN, BLUE;
private Color() {}
}
父类构造器为 private,其他类无法继承它(除非是内部类)。
例如:
private 构造器的核心作用:
✅ 限制对象的创建方式
✅ 提高封装性
✅ 实现设计模式(单例、工厂等)
如果你愿意,我也可以结合反射、序列化、Spring 场景来讲 private 构造器的注意事项。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。