日期:2014-05-20  浏览次数:20669 次

一个关于newInstance简单的java小问题!!!
不是说newInstance调用缺省的构造方法吗????    
为什么我的程序还是能运行过去呢?    
class     Test    
{    
      public     static     void     main(String[]     args)    
  {    
              if(args.length!=1)    
            {    
                      return;    
              }    
              try    
            {    
                  Class     c=Class.forName(args[0]);    
                  Point     pt=(Point)c.newInstanc();            
                  pt.output();            
              }    
            catch(Exception     e)    
            {    
                          e.printStackTrace();    
                }    
      }    
}    
 
class     Point    
{    
              static    
          {    
                System.out.println( "Loading     Point ");    
            }    
 
            int     x,y;    
 
          void     output()    
        {    
            System.out.println( "x= "+x+ ", "+ "y= "+y);    
          }    
                                                                 
          Point(int     x,int     y   )  
          {    
                      this.x=x;    
                      this.y=y;    
          }    
}    
 
在我的电脑上javac和java都能运行过去    
应该运行java的时候抛出异常啊????    
我哪里写错了呢???    
谢谢大家了!!!我好象没有多少分.

------解决方案--------------------
D:\JavaTesting> java Test Point
Loading Point
java.lang.InstantiationException: Point
at java.lang.Class.newInstance0(Class.java:340)