当您在Java中定义一个类,但没有定义构造函数时,编译器会自动帮您产生一个默认构造函数,也就是说,如果您这么写: public class Test {
.... } 则编译器会自动加上默认构造函数,也就是相当于这么写: public class Test {
public Test() { } .... } 如果您自行定义构造函数,则编译器就不会帮您加上默认构造函数,所以当您这么定义时: public class Test {
public Test(int i) { ... } .... } 则在建构时,就必须指明使用哪个构造函数,简单的说,您就不能使用以下的方式来建构: Test test = new Test();
有时会建议即使没有用到,在定义自己的构造函数的同时,也加上个没有参数的构造函数,例如: public class Test {
public Test() { } public Test(int i) { ... } .... } 另外要注意的是,在继承时,如果您没有使用super()指定要使用父类的哪个构造函数,则默认会寻找无参数的构造函数。 默认构造函数的存取权限是跟随着类的存取权限,例如: public class Test {
} 以上的默认构造函数存取权限为public。如果是以下的话: class Test {
} 则默认构造函数存取权限为default。 |