詳述物件的初始化過程

2021-09-25 16:11:29 字數 870 閱讀 6782

就像宣告區域性變數後要進行初始化或者賦值一樣,在建立乙個物件後也要對其進行初始化,而物件的初始化分為四步:

給物件的

例項變數(非「常量」)分配記憶體空間,預設初始化成員變數;

成員變數

宣告時的初始化;

**塊初始化(又稱為構造**塊或非靜態**塊);

構造方法初始化

例如:

再來寫一段**來具體體現這個過程:

public class student

public student(string name)

public static void main(string args)

}

執行的結果為

​ 我們看到,在name變數被定義為張三後,**塊中直接輸出的就是張三,這說明了在建立物件後物件先有了記憶體空間,並且依照資料型別給了成員變數預設值,隨後成員變數被初始化為張三,張三優先輸出,說明**塊的執行順序優先於構造方法的執行;之後才輸出了」構造方法李四「,這說明最後才是構造方法被初始化,之後,物件studen1呼叫構造方法,使其」name「為」李四「。而之後物件student2的初始化過程也是如此,其並沒有因為非靜態**塊在建立物件重新執行了一次而受到影響,這恰恰又說明了**塊的執行早於構造方法的初始化。

物件初始化過程

class person 靜態 塊 static 構造 塊 public void setname string name public void speak public static void showcountry class newperson 當程式執行到person p new pers...

物件初始化過程

1.這是個筆記.helloparent.class public class helloparent public helloparent hellochild.class public class hellochild extends helloparent public hellochild p...

物件的初始化過程

public class persond persond string name,int age public void setname string name public void speak public static void showcountry persond p new person...