私有化建構函式的作用
阿新 • • 發佈:2019-02-02
例如
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; } }