物件的初始化與物件呼叫成員

2021-07-14 20:16:29 字數 459 閱讀 8571

person p = new person(「zhangsan」,20);

①載入person類

②靜態**塊執行

③開闢空間 預設初始化 顯示初始化(變數初始賦值) 構造**塊初始化

1.因為new用到了person.class,所以會先找到person.class檔案並載入到記憶體中;

2.執行該類中的static**塊,如果有的話,給person.class類進行初始化;

3.在隊內開闢空間 ,分配記憶體位址;

4.在堆記憶體中建立物件的特有屬性,並進行預設初始化;

5.對屬性進行顯示初始化;

6.對物件進行構造**塊初始化;

7.對物件進行相應的建構函式初始化;

8.將記憶體位址賦給棧記憶體中的p變數。

方法區優先於物件

靜態變數 靜態方法

靜態省略   類名.

非靜態省略 this. 

物件初始化

在oc中使用alloc後,會分配到一塊記憶體塊,同時這塊記憶體塊會被清零,所以初始化函式init是不需要再做置零的操作的。在oc中,應該在alloc後就呼叫初始化函式init,使用new可以達到這個效果,但new不是oc的風格。物件在init時,應該先使用其父類的init,然後再使用自己的init行...

物件初始化

我們知道當使用new關鍵字建立乙個物件的時候,會呼叫相應的建構函式對該物件進行初始化,那麼這個過程中到底都還有什麼事情呢?先看一段 當執行語句 student stu new student zhangsan 17 執行該語句的時候在記憶體中程式都做了什麼事情,讓我們一一枚舉出來 1 因為new用到...

物件初始化

每乙個物件都應該在建立之時就有確定的內容,否則就失去了物件的意義了。定義乙個物件,在系統為其分配記憶體時,應該同時對有關的資料成員賦初始值。首先,不能在類宣告中對資料成員初始化。因為類不是實體,而是抽象型別,不占用記憶體而無處容納資料。如果類中資料為私有或受保護的,則不能在定義物件時賦初值。time...