我的第一个问题是-
class Explain() { public Explain() { } }
构造函数应始终声明为公共吗?
如果我创建一个private构造函数该怎么办。
private
我总是看到构造函数是隐式的public。那么为什么private构造函数有用呢?还是根本没有用。因为没有人可以调用它,或者永远也不能创建对象(由于private构造函数)!这是我的第二个问题。
public
不, 构造函数 可以是public,private,protected 或default(根本没有访问修饰符)。
protected
default
做某事private 并不意味着没有人可以访问它。这只是意味着该类之外的任何人都不能访问它。因此private构造函数也很有用。
private构造函数的用途之一是为单例类提供服务。单例类是将对象创建的数量限制为一个的类。使用private构造函数,我们可以确保一次最多只能创建一个对象。
范例-
public class Database { private static Database singleObject; private int record; private String name; private Database(String n) { name = n; record = 0; } public static synchronized Database getInstance(String n) { if (singleObject == null) { singleObject = new Database(n); } return singleObject; } public void doSomething() { System.out.println("Hello StackOverflow."); } public String getName() { return name; } }