当前位置:  技术问答>java相关

这例程不但没有构造函数,还自己new自己?

    来源: 互联网  发布时间:2015-06-05

    本文导语:  在学习Singleton模式的过程中十分疑惑:以下的例程有两处不理解(见“//-----”部分)! 原文如下: 一般Singleton模式通常有几种形式: public class Singleton {    private static Singleton _instance = new Singleton();       //...

在学习Singleton模式的过程中十分疑惑:以下的例程有两处不理解(见“//-----”部分)!

原文如下:

一般Singleton模式通常有几种形式:

public class Singleton { 
  private static Singleton _instance = new Singleton(); 
     //-----------------为什么没有构造函数?为什么可以自己new自己?
  public static Singleton getInstance() { 
    return _instance; 
  } 



调用方法:
Singleton.getInstance()
 

第二种形式:

public class Singleton { 
  private static Singleton _instance = null; 
   
  public static Singleton getInstance() { 

    if (_instance==null)
      _instancenew Singleton() //----------------这句怎么理解?
    return _instance; 
  } 



调用方法:
Singleton.getInstance()
 

|
如果只是说没有构造函数就new,我想你应该知道有默认的构建器吧!
不过singleton的主要特点应该是构造函数是private的,这样来保证只会有一个实例!

|
_instancenew Singleton() //----------------这句怎么理解?


好象是错了

_instance = new Singleton();

实际上你可以这样理解


第二种形式:

public class Singleton { 

  private static Singleton _instance = null; 

    // 就好象是有这句话一样。
    private Singleton (){
    }
    
  public static Singleton getInstance() { 

    if (_instance==null)
      _instance = new Singleton();
    return _instance; 
  } 





|
呵呵!你自己写个试试不就知道了吗?为什么就不能自己new一个自己呢?我记得很多书上都有这样的例子!

    
 
 

您可能感兴趣的文章:

  • 请问师傅们这个类为什么没有构造函数呀?什么样的类不需要构造函数?
  • JAVA中有没有拷贝构造函数这个概念?相同类型的对象间可以直接赋值吗?
  • 标准C下没有字符处理函数,怎样写一个实现下面功能的函数?
  • 但是内核源码中(相关c文件)明明EXPORT了 函数,为什么查看内核符号/proc/kallsys却没有该函数
  • sendfile()函数为什么效率高? 它的实现难道没有涉及普通I/O函数么
  • wcslen 等函数能用在linux下面吗?文件路径搜索有没有跨平台的函数库?
  • linux 2.6.35.4 内核中已没有netif_rx_schedule()函数,那替代函数是啥?
  • 请教:javascript 里有没有时间循环执行的函数,如我按住鼠标触发mousedown 事件函数时,反复执行我写的一个函数?
  • mkdir()是创建文件夹的函数,有没有循环创建多个目录级的函数呢?
  • Linux下某些字符串操作函数没有对应的Unicode版本,有替代函数可用吗?
  • aix 下 tuxedo 服务端的 tpsvrinit()函数没有被调用
  • 有返回值的函数,却没有return语句,这种情况下有没有标准语义?
  • 请问在linux/unix下有没有象GetKeyboardState()一样对键盘状态进行控制的函数?
  • linux下C语言怎么没有getch()函数?
  • linux 下有没有能精确到纳秒的取时间函数?
  • 如何知道一个用有没有权限调用bind()函数(socket编程的时候)
  • driver_match_device( )函数调用失败,为什么?因为bus_type数据结构的match没有指定函数体?
  • 为什么JAVA没有析构函数?
  • 在unix中有没有ucs2编码与中文的转换函数???
  • UNIX下有没有可以直接得到UUID的函数
  • JAVA里有没有类似SLEEP的函数?
  • 有没有函数实现压缩算法?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • AIX上可以new出来的内存有没有限制?
  • 为什么JB4和JB5中new EJB Group中点OK后一点反应都没有??????????????
  • 快来抢分(80):我用<a href= target=new >方法跳转一个页面,怎写才能定制新生成的跳转页面的大小,及风格(如浏览器没有toolbar)?拜托说的详细点
  • C++ Bitsets 成员 none():如果没有位被设置则返回true
  • linux没有lilo命令阿,是不是表示没有 相关套件?我的下载吗,也没有RPM这个 命令,我该如何搞定他们出来
  • C++ I/O 成员 good():如果没有出现过错误则返回true
  • 请问:我发现我的系统里什么都没有啊,gcc没有,rpm也没有,这怎么办啊
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?
  • linux 下 没有aptitude,也没有 apt-get。
  • 有没有哪位知道linux下有没有什么可视聊天的工具
  • 求救!!安装redhat后,提示重启,但是没有没有redhat的启动选项
  • 请问:编译内核时,make bzimage命令后,提示没有这个规则,这有没有影响呀?
  • 有没有搞错,JSP精华版数据全部没有了。
  • 我想在VMware上装FreeBSD,有没有人这样做过?有什么问题没有?
  • 我没有软驱,也没有LINUX的光盘,如何安装LINUX?
  • 论坛 iis7站长之家
  • 怎么判断一个表中没有没有记录呀?
  • 请问各位谁知道JBuilder7的注册解密方法,我没有序列号,也没有解密文件
  • 我安装了cygwin,可是根本做不了什么工作,里面没有vi,没有gcc,怎么会这样?
  • 请问为什么JSDK装好后,没有LIB子目录,也没有jsdk.jar,谢谢!
  • [AIX]有没有办法查到有没有用户执行了Kill命令
  • linux里有没有象vc那样的IDe啊,有没有类库什么的呢
  • 上ADSL时的问题,输入:adsl-start没有反应,也没有提示!!!!!
  • 在redhat8.0下如何配声卡。没有sndconfig命令。setup中也没有sound configration。怎么办?<0b>


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3