我們先來看乙個例項
class example
}class bigexample extends example
}class staticitem
}class privateitem
}public
class
test
}
結果是這樣的:
this is staticitem
this is privateitem
this is example
this is bigexample
從這裡我們可以看出,當構造乙個物件時,會先去看一看這個類是否有基類,如果有基類就先去基類中去,但是假如到乙個類中,可是現在我們想類中有字段和建構函式,這個順序是什麼尼?從上面我們可以看出是先初始化了字段,然後再呼叫建構函式,這個其實想想也是必要的,因為建構函式的功能就是初始化一些類中的東西,如何還沒有初始化變數引用,那麼建構函式就沒法初始化了,下面我們總結一下流程:
1.先去看一下這個類,有沒有基類,如果有基類就先構造基類
2.在乙個類中先初始化變數,變數中先初始化靜態變數,然後是普通變數,然後再呼叫建構函式。
Java類完整的構造執行順序
如果父類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊 如果類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊 將類的成員賦予初值 原始型別的成員的值為規定值,例如int型為0,float型為0.0f,boolean型為false 物件型別的初始值為null 如果構造方...
含物件成員類的構造順序
class a private int m public a cout a s constructor 2 與變數定義類似,在用預設建構函式建立物件時,如果建立的物件時全域性的或者時靜態的,則物件的位模式全為0,否則物件值時隨機的。輸出的結果是 a s constructor b s constru...
Java類裡靜態快,構造塊,建構函式的順序
靜態塊 用static申明,jvm載入類時執行,僅執行一次 構造塊 類中直接用 定義,每一次建立物件時執行 建構函式 一般用來初始化成員屬性和成員方法的,即new物件產生後,就呼叫了物件了屬性和方法 public class study static static public static voi...