Java类库可以通过提供一种被称为构造函数的特殊方法,来保证每个对象都能得到初始化。如果类有构造函数,那么Java就会在对象刚刚创建,用户还来不及得到的时候,自动调用那个构造函数。默认的构造函数(也就是无参数的构造函数)是一种用于创建基本对象的无参数的构造函数。如果你写了一个没有构造函数的类,哪呢编译器会自动为你创建一个默认的构造函数。
尽管没有明确定义过,但是它调用了那个默认的构造函数,并且创建了一个新的对象。没有它,我们构建对象的时候就没方法可调。但是,只要定义了构造函数(不管带不带参数),编译器就不会再自动合成默认的构造函数了。
编译器就会报错说它没法找到匹配的构造函数。这就像,如果你不放任何构造函数,编译器会说“你肯定是需要构造函数的,所以我给你弄一个吧”。但是如果你写了构造函数,编译器就说“你已经谢了一个构造函数,那就说明你知道你在做些什么;既然比不定义默认的构造函数,这就是说明你不需要。”
评论列表: