在 Java 里,**private 构造方法(私有构造方法)**的核心作用是:不让别人随便用 new 来创建这个类的对象。
常见用途有下面几种:
保证一个类只有一个实例。
public class Config {
private static Config instance = new Config();
private Config() {} // 私有构造,外部不能 new
public static Config getInstance() {
return instance;
}
}
外部只能:
Config c = Config.getInstance();
不能:
new Config(); // 编译错误
像 Math、Collections 这种只提供静态方法的类。
public class StringUtils {
private StringUtils() {} // 禁止 new
public static boolean isEmpty(String s) {
return s == null || s.length() == 0;
}
}
这样可以避免:
new StringUtils(); // 没意义
对象的创建逻辑更复杂,不想直接暴露构造。
public class User {
private User() {}
public static User create(String name) {
// 可以做校验、缓存等
return new User();
}
}
有些类只允许在类内部创建自己:
public class Outer {
private Outer() {}
public class Inner {
public Inner() {
Outer o = new Outer(); // 合法
}
}
}
public final class Constants {
private Constants() {}
}
private 构造方法 = 把“创建对象的权利”收回到类自己手里
如果你愿意,我也可以结合单例 / 工厂 / 工具类给你一个更直观的例子对比。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。