为什么java有些类的创建不用new而是调用它自己的一个静态方法,譬如Toolkit kit=Toolkit.getDefaultToolkit()。java为什么要这么做??

解决方案 »

  1.   

    返回类型是类名本身
    对象已经在类里面创建,并且构造函数是private,外面不能创建对象,只能调用内部方法static
    java单态模式
      

  2.   

    有的情况是singleton模式
    为了一个class只对应着一个instance,也是要使constructor成为private
    而public一个返回instance的function
      

  3.   

    this class doesn't want the client to create objects by itself, instead the class itself will supply client an instance by its static method.
      

  4.   

    很简单,这样做主要是不想你new对象。对象由类自身维护
      

  5.   

    有时,class 就是这样用,但是这样,那个静态,方法里也有new ?
    是不是啊?
      

  6.   

    当然有new,不然对象怎么出来!至少要new一次!或者至少要动态调用构造方法一次
      

  7.   

    建议楼主去察看设计模式中的创建模式部分,主要是:
    工厂方法(Factory Method)
    抽象工厂(Abstract Factory)
      

  8.   

    感觉很多都答不对文呢。我想楼住应该是搞清楚类方法和实例方法的区别.类方法是不需要将类实例化后就可以直接使用的。实例方法是必须将类实例化以后才能使用的。相当于一种是class类()方法,一种是instance(对象)方法。`
      

  9.   

    为什么java有些类的创建不用new而是调用它自己的一个方法?
    effective java 看过吗,里面讲的不错,
    是用new还是用静态工厂,都有不同适用条件的。。
      

  10.   

    谢谢各位朋友的解答,我自己正在根据各位的提示找一些资料书看。我想我对java机制还不够了解,我会努力的,谢谢各位!!