大可制作:QQ群:31564239(asp|jsp|php|mysql)

Java Gossip: 默认构造函数

当您在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