Java默认构造函数

示例

构造函数的“默认”是它们没有任何参数。如果您未指定任何构造函数,则编译器将为您生成一个默认构造函数。
这意味着以下两个片段在语义上是等效的:

public class TestClass {
    private String test;
}
public class TestClass {
    private String test;
    public TestClass() {

    }
}

默认构造函数的可见性与类的可见性相同。因此,包私有定义的类具有包私有默认构造函数

但是,如果您具有非默认构造函数,则编译器将不会为您生成默认构造函数。所以这些不是等效的:

public class TestClass {
    private String test;
    public TestClass(String arg) {
    }
}
public class TestClass {
    private String test;
    public TestClass() {
    }
    public TestClass(String arg) {
    }
}

请注意,生成的构造函数不会执行任何非标准的初始化。这意味着您的类的所有字段都将具有其默认值,除非它们具有初始化程序。

public class TestClass {

    private String testData;

    public TestClass() {
        testData = "Test"
    }
}

构造函数的名称如下:

TestClass testClass = new TestClass();