NumberFormat currencyFormatter=NumberFormat.getCurrencyInstance();
这是什么意思呀
不是NumberFormat currencyFormatter= new NumberFormat();声明一个实例吗???

解决方案 »

  1.   

    new当然可以创建新实例;
    但静态方法也可以创建并返回一个新实例啊,当然,也可能不是新创建的,但总是可以返回一个实例的。
    不知道你为啥因为从一个方法中返回一个实例感到奇怪。
      

  2.   

    String s1 = s.substring(0, 5);
    不也是从一个方法中返回一个新对象吗?难道没见过?
      

  3.   

    而且有一些类,其构造函数被声明为private的,根本就无法从类外new,只能通过类提供的public的静态方法来获取实例。
    比如在singleton, factory等模式中,就常用这些伎俩。
      

  4.   

    对象可以new 出来 也可以通过一个方法返回的。
      

  5.   

    普通方法也可以,但是必须有一个现成的对象给你调用
    如果没有,只能用静态方法了非静态方法的最最常见的,比如 clone这个方法Object o1...;//假设已经实现了Clonable接口,代码略
    Object o2=o1.clone();
      

  6.   

    其实他部结构是这种的,用一个简单例子说明class A
    {
      static A getA()
      {
         return new A();
      }
    }所以也是返回一个实例的.
      

  7.   

    action_zlm(骑在龙背上) ( ) 信誉:100    Blog   加为好友  2007-6-3 18:52:48  得分: 0  
       
    还是不怎么明白,静态方法怎么创建实例的吗,必须是静态方法吗,普通方法不行吗?
    ========================================================================
    我后来说的是特指那种把构造函数给声明为private的模式中的情况。
    一旦构造函数成为private的,外界就不可能只接产生实例了,既然实例都还没有,你普通方法又从哪里调?——所以,这种情况只有先依靠静态方法把实例产生出来,然后咱们才有必要讨论如何调用一般方法的问题(别访了非静态的一般方法必须从实例上调用,不能从类名上调用)比如:
    public class Singleton {
        private Singleton() {}
        private static Singleton instance = new Singleton();
        public static getInstance() {
            return instance;
        }
    }