JAVA類初始化和實例初始化


一、類初始化過程

1、一個類要創建實例需要先創建和加載

     (1) main方法所在的類需要先加載和實例化

2、一個子類要初始化,需要先初始化父類

3、一個類初始化就是執行<clinit>方法

      (1) <clinit>() 方法由靜態類變量顯示賦值代碼和靜態代碼塊組成。

      (2) 靜態類變量賦值海馬和靜態代碼塊從上到下順序執行

      (3)<clinit>() 方法只執行一次

 

二、實例初始化過程(有父類時,父類先開始初始化)

1、實例初始化就是執行<init>()方法

       (1)<init>()方法可能重載有多個,有幾個構造器就有幾個<init>方法

       (2)<init>()方法由非靜態實例變量顯示賦值代碼和非靜態代碼塊、對應構造器代碼組成

    (3)非靜態實例變量顯示賦值代碼和非靜態代碼塊從上到下順序執行,構造器的代碼最后執行

    (4)每次創建實例對象,調用對應構造器,執行的就是對應的<init>方法

    (5)<init>的方法的首行是super()或super(實參列表),即對應的父類<init>方法

 

注:子類如果重寫了父類的方法,通過子類對象調用的一定是子類重寫過的代碼

        非靜態方法默認的調用對象是this

        this對象在構造器或者說<init>方法中就是正在創建的對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM