黑马程序员技术交流社区

标题: 关于构造函数私有的问题 [打印本页]

作者: xuchulong1    时间: 2012-10-31 14:17
标题: 关于构造函数私有的问题
私有构造函数可以实现一个类只被定义一次的功能:
public class Singleton {   private static Singleton instance = null;  public static synchronized Singleton getInstance() {  if (instance==null)    instance=new Singleton();        return instance;       } }

关于这个我不是很明白,希望有比较清楚的能帮我稍微解释下哈

作者: 李靖    时间: 2012-10-31 14:30
这是单例的设计模式,张老师讲的很清楚了。一般多线程会用到单例模式,主要是为了实现资源的共享,符合实际需求。
作者: xuchulong1    时间: 2012-10-31 14:49
可能是我没有说清楚,我是想知道为什么只能定义一个这样的类,在另外的类里面,如果我要定义这个类的话,我调用Singleton.getInstance();两次的话,不是就有两个对象了么??如果这样定义的是同一个的话,又是为什么呢
作者: 杨政    时间: 2012-10-31 15:07
调用Singleton.getInstance()两次:第1次调用创建了对象;第2次调用的时候if (instance==null)不满足,直接返回第一次创建的对象,以后也都这样。
作者: xuchulong1    时间: 2012-10-31 15:10
杨政 发表于 2012-10-31 15:07
调用Singleton.getInstance()两次:第1次调用创建了对象;第2次调用的时候if (instance==null)不满足,直接 ...

哦,对,没注意,谢啦,哈哈哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2