1. 程式人生 > >類初始化和例項初始化過程

類初始化和例項初始化過程

類初始化過程
①,一個類要建立例項需要先載入並初始化該類
--》main方法所在的類需要先載入和初始化
②,一個子類要初始化需要先初始化父類
③,一個類初始化就是執行<clinit>() 方法
--》<clinit>() 由靜態類變數賦值程式碼和靜態程式碼塊組成
--》靜態類變數賦值程式碼和靜態程式碼塊從上往下執行
--》<clinit>() 方法只執行一次


例項初始化過程
①,例項初始化就是執行<init>()方法
--》<init>()方法可能過載有多個,有幾個構造器就有幾個<init>()方法
--》<init>()方法是由非靜態例項變數顯式賦值程式碼和非靜態程式碼塊,對應構造器程式碼組成
--》非靜態例項變數顯式賦值程式碼和非靜態程式碼塊從上往下執行,而對應構造器方法最後執行
--》每次建立例項物件,呼叫對應構造器,執行的就是對應的<init>()方法
--》<init>方法的首行是super(),即對應父類空參的<init>方法

非靜態方法前面其實有一個預設的物件this
this 在構造器(或<init>)它表示的是正在建立的物件,當子類在例項化時
父類的例項方法前面的this就是子類物件