在 Java 里,**私有构造器(private constructor)**主要作用是:阻止外部代码通过 new 创建该类的实例。
它通常用于以下几类设计场景:
工具类一般只包含 static 方法,不需要实例。
public class MathUtil {
private MathUtil() {
// 防止被实例化
}
public static int add(int a, int b) {
return a + b;
}
}
✅ 作用:
new MathUtil()确保一个类只有一个实例。
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return INSTANCE;
}
}
✅ 作用:
new 创建多个对象实例创建逻辑不对外暴露,由工厂方法控制。
public class User {
private String name;
private User(String name) {
this.name = name;
}
public static User create(String name) {
return new User(name);
}
}
✅ 好处:
构造器是 private,子类无法调用父类构造器,因此不能被继承。
public class Parent {
private Parent() {}
}
// ❌ 编译错误
// class Child extends Parent {}
✅ 常用于:
某些框架(如 Spring)或内部实现类中,构造器私有化用于:
❌ 私有构造器 ≠ 不能创建对象
✅ 同一个类内部仍然可以 new
public class Example {
private Example() {
Example e = new Example(); // ✅ 合法
}
}
私有构造器 = 限制对象创建方式
用来实现:
如果你愿意,我也可以:
private / protected / default 构造器免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。