[英]Will constructor chaining create more than one object in Java?
如果我使用此關鍵字調用同一類的另一個構造函數。 它會創建兩個對象嗎?
如果是這樣,下面的例子中哪個對象將處於活動狀態:
Class Sample {
int a;
String b;
Sample() {
this("Hello");
a=10;
}
Sample(String temp) {
b = temp;
}
}
我想知道構造函數鏈接的行為。 請解釋它是如何工作的?
不,構造函數鏈接不會創建其他實例,它只是執行鏈式構造函數的邏輯,允許您重用其代碼。
不 , this("Hello");
這里ll調用Sample(String temp)
構造函數,它不會創建另一個對象。
正如其他人提到的那樣,你只會得到一個對象,每個構造函數初始化同一個對象。
最適合自己看看:
public class Sample {
int a;
String b;
Sample() {
this("Hello");
a=10;
System.out.println("B: "+ hashCode());
}
Sample(String temp) {
b = temp;
System.out.println("A: "+ hashCode());
}
public static void main(String[] args) {
new Sample();
}
}
請注意,如果您嘗試訪問未初始化的字段,那么在未完全初始化的對象上調用實例方法可能會導致問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.