我们可以在 Java 中将构造函数声明为私有吗?

javaobject oriented programmingprogramming更新于 2025/7/11 12:28:17

是的,我们可以将构造函数声明为私有。如果我们将构造函数声明为私有,我们就无法创建类的对象。我们可以在单例设计模式中使用这个私有构造函数。

私有构造函数的条件

  • 私有构造函数不允许类被子类化。
  • 私有构造函数不允许在类外创建对象。
  • 如果所有常量方法都存在于我们的类中,我们可以使用私有构造函数。
  • 如果所有方法都是静态,那么我们可以使用私有构造函数。
  • 如果我们尝试扩展具有私有构造函数的类,将发生编译时错误。

示例

class SingletonObject {
   private SingletonObject() {
      System.out.println("In a private constructor");
   }
   public static SingletonObject getObject() {
      // we can call this constructor
      if (ref == null)
         ref = new SingletonObject();
      return ref;
   }
   private static SingletonObject ref;
}
public class PrivateConstructorDemo {
   public static void main(String args[]) {
      SingletonObject sObj = SingletonObject.getObject();
   }
}

输出

In a private constructor

相关文章


有用资源