就是那个构造方法在实例化的时候就开始运行了,如果这个构造方法是private型的那咋办呢 是否不影响他的运行?谢谢了 纠结啊

解决方案 »

  1.   

    你把它改成private 看看能不能编译通过
      

  2.   

    http://topic.csdn.net/t/20040111/03/2653415.html
      

  3.   

    一般只有单例模式才把他设成为private,确保外部不能实例化,这样才能保证他是一个实例
      

  4.   

    没关系,假如你的构造方法是  
    private A(){}
    你在类中再添加一个静态方法(这里假定是无参数的,有参数的也可以类似写,只需括号中加参数)
    public static A createA(){ return new A();}
    或者:
    public static A getInstance(){ return new A(); }然后其他类就可以放心调用了 A.createA(); 或者  A.getInstance();
      

  5.   

    你用过Calendar.getInstance()方法吗? 你认为它的里面怎么实现呢?
      

  6.   


    你不觉得写这么多new很别扭吗???,
    按照HeadFirst的话说,
    首先说明,写成new对程序运行没有问题 本身是没有问题 
    但是那是面向实现的编程习惯
    而我们提倡使用面向接口的编程风格
    我刚才在API1.6中搜索getInstance()方法,显示出来的条目不下50条
    搜索createXXX()方法,显示出来的条目不下数不尽数
    我才猜想 sun是希望我们少用new
      

  7.   

    上面没有说完整,
    HeadFirst 设计模式:第11页 
    设计原则:
    针对接口编程,而不是针对实现编程
      

  8.   


    他的getInstance和createXXX恐怕是结合设计模式所说在Calendar这个类中,我不觉得getInstance和构造函数有任何功能上的不同
      

  9.   

    用private来修饰构造方法一般只用于单例模式.但说实话,我真没觉得这个单例模式有啥好的,功能上来说一点好处都没有,仅仅只是为了所谓的编程思想.真扯.
      

  10.   

    我来回答楼主的问题,其他不做任何表态。
    没什么纠结的,构造方法在实例化的时候开始运行,对!
    构造方法是private的,如果在某些区域你能实例化它,那么它在实例化的时候也会运行;
    如果你不能实例化它,它也就不能运行,何谈影响,回答完毕,不知道楼主疑惑解开没有!