構造代碼塊:是給所有的物件進行初始化,也就是說,所有的物件都會呼叫一個代碼塊。只要物件一建立。就會呼叫這個代碼塊。
建構式:是給與之對應的物件進行初始化。它具有針對性。
uj5u.com熱心網友回復:
還是前提不明,難道建構式不也是物件一創建就會呼叫嗎?只是針對不同的引數呼叫不同的建構式而已。uj5u.com熱心網友回復:
建構式就是新建一個物件的初始化函式唄。uj5u.com熱心網友回復:
區別就是:假設有多個建構式,建構式中的代碼,只在呼叫這個建構式的時候起作用。
而構造代碼塊,無論你呼叫哪個建構式,都起作用。
簡單一點可以理解為構造代碼塊是建構式中共同邏輯的一個代碼重構。
uj5u.com熱心網友回復:
舉個例子就明白了:public class Test {
{
System.out.println("aaaaaa");
}
public Test() {
System.out.println("bbb");
}
public Test(String a) {
System.out.println("bbb" + a);
}
{
System.out.println("ccc");
}
public static void main(String[] args) {
new Test();
new Test("xxxxxxx");
}
}
運行這段代碼,它的輸出如下:
aaaaaa
ccc
bbb
aaaaaa
ccc
bbbxxxxxxx
構造方法中的代碼,只在呼叫該方法時運行,而構造代碼塊在你呼叫任何一個構造方法時都會運行。
如果你的多個構造方法有共同的邏輯,可以重構到構造代碼塊中。
uj5u.com熱心網友回復:
補一下類的初始化順序,搜一下相關博客轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/97501.html
標籤:Java SE
上一篇:java
