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


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

私有构造函数的条件

  • private构造函数不允许对一个类进行子类化。
  • private构造函数不允许在类外部创建对象。
  • 如果我们类中有所有常量方法,我们可以使用private构造函数
  • 如果所有方法都是static的,那么我们可以使用private构造函数
  • 如果我们试图扩展一个类,而该类有private构造函数,将会发生编译时错误

示例

实时演示

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

更新于: 2019年7月30日

10K+ 次浏览

开启您的职业生涯

完成课程并获得认证

开始
广告
© . All rights reserved.