在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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
JavaScript
PHP