java 對象創建的過程


存在了繼承關系之后,對象創建過程如下:

1.分配空間。要注意的是,分配空間不光是分配子類的空間,子類對象中包含的父類對象所需要的空間,一樣在這一步統一分配。在分配的空間的時候,會把所有的屬性設置為默認值。

2.遞歸的構造父類對象。

3.初始化本類屬性。

4.調用本類的構造方法。

舉例介紹對象創建的過程。

假設如下代碼:

class A{

      int valueA = 100;

      public A(){  valueA = 150; }

}

class B extends A {

     int valueB = 200;

    public B(){  valueB= 250; }

}

public calss TestInherit{

     public static void main(Stirng []){

          B b = new B();

    }

}

我們在main方法中創建了一個b對象,創建的過程如下:

1.分配空間。在分配空間時,會把B、A這兩個對象的空間一次性都分配完畢,然后將這兩個對象的屬性都設置為默認值,這樣,valueA、valueB這兩個屬性都被設置為0。

2.遞歸構造B對象的父類對象。這里,要構造的就是A類對象。

3.初始化B的屬性。即把valueB賦值為200。

4.調用B的構造方法。

其中第2步,創建A類對象,不需要再重新分配空間,需要一下幾步:

2.1 遞歸的構造A類對象的父類對象。創建的步驟與創建A類對象同理。此例中以為A沒有任何的父類,沒有任何的輸出。

2.2 初始化A類屬性。把valueA 賦值為100.

2.3 調用A類的構造方法。

總結一下,創建B類對象的步驟一共有5步

1.分配空間

2.初始化A類屬性。

3.調用A類的構造方法.

4.初始化B的屬性。

5.調用B的構造方法。

 


免責聲明!

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



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