私有构造函数可以防止该类在外部被实例化

xiaoxiao2021-02-27  151

例如

[java]  view plain  copy public class DiskUtil {     private DiskUtil() {  }        public static FUNC(){}      }   这样的类,往往提供一些静态的函数来生成该类的实例,只要这个类有公开的属性、方法,得到实例引用的一方还是可以调用的,一个例子是singleton。

外面调用只能调用DiskUtil 的静态函数Func,而不能A a = new A();私有构造函数只能在函数内部调用,外部不能实例化,所以私有构造函数可以防止该类在外部被实例化

常见的应用是工具类和单例模式

[java]  view plain  copy package test.reflect;   public class Singleton {       private static Singleton s= null;  //2.在本类内部声明对象S            private Singleton() {  //1.私有构造对象 防止外部实例化                }              public static Singleton getInstance() {   //创建外部程序可以调用该实例的方法 return s对象;Singleton是本类类型相当于int void。。。         if (s == null) {               synchronized (Singleton.class) {                   if (s == null) {                       s = new Singleton();                   }               }           }           return s;       }   }  
转载请注明原文地址: https://www.6miu.com/read-14892.html

最新回复(0)