預設建構函式
建構函式的預設是它們沒有任何引數。如果你未指定任何建構函式,編譯器將為你生成預設建構函式。
這意味著以下兩個片段在語義上是等效的:
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();