JAVA构造方法私有化

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、对象实例化:类名对象名=new类名();

取得实例化对象:s1=Singleton.getInstance();

2、一个类的构造方法被私有化之后,则只能通过“类.方法()”取得实例化对象

举例如下,详细请看另外一个word:单例模式讲解

饿汉式:因为static变量能够在加载类时被初始化,在饿汉式中就是被=new MyBean()所以在加载类时就实例化,以后执行MyBean.getInstance()时只是引用该实例public class MyBean{

private static MyBean instance=new MyBean();//冠:在SpringMVC中,所有的类包括自定义的类在加载(也就是扫描注解的类)时默认添加类似此行的代码再加载

private MyBean(){}//私有化构造方法保证了不能使用new实例化

public static synchronized MyBean getInstance(){

return instance;

}

懒汉式:第一次执行MyBean.getInstance()时才实例化,以后执行MyBean.getInstance()时,会先判断static变量是否为null,若是则再次实例化,若不是才引用第一次的实例public class MyBean{

private static MyBean instance=null;

private MyBean(){}//私有化构造方法保证了不能使用new实例化

public static synchronized MyBean getInstance(){

if(instance==null){instance=new MyBean();}

return instance;

}

不管外部声明了多少个MyBean的对象,但是最终结果都是通过getInstance()方法取得实例化对象。此时s1、s2、s3实际上都使用了一个对象的引用:instance。

相关文档
最新文档