構(gòu)造器
構(gòu)造器是一種特殊類型的方法淤年,它沒有返回值苟蹈,并且構(gòu)造器的名稱必須與類名完全相同横蜒。在創(chuàng)建對象時胳蛮,將會為對象分配存儲空間,并調(diào)用相應的構(gòu)造器丛晌。
默認構(gòu)造器
默認構(gòu)造器又名“無參構(gòu)造器”仅炊,是沒有形式參數(shù)的。如果類中沒有定義構(gòu)造器澎蛛,則編譯器會自動創(chuàng)建一個默認構(gòu)造器抚垄。如果類中已經(jīng)定義了一個構(gòu)造器,則編譯器不會創(chuàng)建默認構(gòu)造器谋逻。
如何在構(gòu)造器中調(diào)用構(gòu)造器
使用this關鍵字調(diào)用一個構(gòu)造器呆馁,但卻不能調(diào)用兩個。而且必須將構(gòu)造器調(diào)用置于最起始處毁兆,否則編譯器會報錯智哀。
變量初始化
- 初始化順序:變量定義的先后順序決定了初始化的順序,初始化變量在調(diào)用構(gòu)造器之前被初始化荧恍。
- 靜態(tài)數(shù)據(jù)的初始化:static關鍵字不能應用于局部變量,它只能作用于域。如果一個域是靜態(tài)的基本類型送巡,且也沒有對它進行初始化摹菠,那么他就會獲得基本類型的標準初值;如果它是一個對象的引用骗爆,那么他的默認初始化值就是null次氨。靜態(tài)初始化只有在必要時刻才會進行,如果不創(chuàng)建對象摘投,也不引用類的靜態(tài)變量(對象引用)煮寡,那么靜態(tài)變量也不會被創(chuàng)建。只有在第一次闖將對象或訪問靜態(tài)數(shù)據(jù)的時候犀呼,才會被初始化幸撕。初始化之后,靜態(tài)對象不會再次初始化外臂。
初始化順序
1.沒有繼承
靜態(tài)變量->靜態(tài)初始化塊->變量->變量初始化塊->構(gòu)造方法
2.有繼承的情況
父類靜態(tài)變量->父類靜態(tài)初始化塊->子類靜態(tài)變量-> 子類靜態(tài)初始化塊->父類變量初始化->父類變量初始化塊->父類構(gòu)造方法->子類變量初始化->子類變量初始化塊->子類構(gòu)造方法