私有化构造函数的作用
比如
public class DiskUtil { private DiskUtil() { } public static FUNC(){} }
这种类,往往提供一些静态的函数来生成该类的实例,仅仅要这个类有公开的属性、方法。得到实例引用的一方还是能够调用的,一个样例是singleton。
外面调用仅仅能调用DiskUtil 的静态函数Func,而不能A a = new A();私有构造函数仅仅能在函数内部调用。外部不能实例化。所以私有构造函数能够防止该类在外部被实例化
常见的应用是工具类和单例模式
package test.reflect; public class Singleton { private static Singleton s= null; private Singleton() { } public static Singleton getInstance() { if (s == null) { synchronized (Singleton.class) { if (s == null) { s = new Singleton(); } } } return s; } }