4 物件的例項化過程

2021-09-22 21:16:53 字數 964 閱讀 1346

person p = new person();

jvm會去讀取指定路徑下的person.class檔案,並載入進記憶體,並會先載入person的父類(如果有直接父類的情況下)

在堆記憶體中開闢空間,分配位址

並在物件空間中,對物件中的屬性進行預設初始化呼叫對應的建構函式,進行初始化

在建構函式中,第一行會先呼叫父類中的建構函式進行初始化(如果沒有顯式呼叫父類的建構函式,預設第一行將呼叫父類無參建構函式:super())

父類初始化完畢後,再對子類的屬性,進行顯示初始化。(在定義類屬性時的初始化如:string ***=「boy」?

指定建構函式中的初始化初始化完畢後,將堆記憶體中的位址值賦給引用變數。

流程圖:

簡單來說:

成員變數預設初始化====》父類建構函式初始化===》成員變數定義時顯示初始化====》子類建構函式中的初始化

例:

class

father

public

father

(int age,string name)

}class

sonextends

father

public

son(

int age,string name)

public

son(

int age,string name,string school)

}

注意:

20140111 物件初始化過程

c 物件初始化 1.先變數後建構函式。變數先被初始化,然後建構函式被執行 2.先靜態化後例項化。當乙個類被訪問時,靜態變數和建構函式最先被初始化.接著是物件的例項化變數和建構函式被初始化 3.先派生類後基類。對於變數和靜態建構函式,派生物件在基物件之前被初始化.比如c類派生自b類,b類派生自a類,那...

js物件4 物件的操作

使用typeof 方法 function isobject test else 原理 該方法傳入乙個變數,返回該變數型別所對應的字串 string number boolean undefined object null object function 對於null 陣列和物件,一律返回 objec...

學習4 物件轉殖

物件轉殖介面 param param from from param dsttype dsttype return t public static t cloneobject object from,classdsttype catch instantiationexception e catch ...