没有构造函数的都会被自动添加一个默认的空构造器,比如:
class a{
}

class a{
    public a() {
        super();
    }
}
其实是一样的。

解决方案 »

  1.   

    摘片好点的,这个是从一个THINK IN JAVA 2的一个中文版中摘的。
    该版TIJ由yyc,spirit整理, 站点http://yycnet.yeah.net
    4.2.4 默认构建器
    正如早先指出的那样,默认构建器是没有自变量的。它们的作用是创建一个“空对象”。若创建一个没有构建器的类,则编译程序会帮我们自动创建一个默认构建器。例如:
    //: DefaultConstructor.javaclass Bird {
      int i;
    }public class DefaultConstructor {
      public static void main(String[] args) {
        Bird nc = new Bird(); // default!
      }
    } ///:~对于下面这一行:
    new Bird();
    它的作用是新建一个对象,并调用默认构建器——即使尚未明确定义一个象这样的构建器。若没有它,就没有方法可以调用,无法构建我们的对象。然而,如果已经定义了一个构建器(无论是否有自变量),编译程序都不会帮我们自动合成一个:class Bush {
    Bush(int i) {}
    Bush(double d) {}
    }现在,假若使用下述代码:
    new Bush();
    编译程序就会报告自己找不到一个相符的构建器。就好象我们没有设置任何构建器,编译程序会说:“你看来似乎需要一个构建器,所以让我们给你制造一个吧。”但假如我们写了一个构建器,编译程序就会说:“啊,你已写了一个构建器,所以我知道你想干什么;如果你不放置一个默认的,是由于你打算省略它。”
      

  2.   

    说明下:刚刚我来情趣,到上面说的TIJ2中文版整理者网站看看,就是:站点http://yycnet.yeah.net,
    结果发现上面有个链接有病毒,所以小心了。
    sweat
      

  3.   

    楼上的论述在JAVA中是完全错误的。