C 例項化類的執行順序

2022-07-18 03:51:11 字數 722 閱讀 5079

先進行細分:

類的成員分為:字段、屬性、方法、構造方法

成員的修飾符:靜態成員、例項成員

層次結構:父類、子類

先不考慮繼承關係,執行順序為:

靜態字段

靜態構造方法

例項字段

例項構造方法

屬性和方法是在呼叫的時候才執行,這裡就不考慮了。如何理解上面的執行過程?假如讓我來設計執行過程,我該如何考慮,依據是什麼?

首先,靜態的東西是大家共享的,也就是相同的。應該先關心共享的東西,再關係個人的東西。「先公後私」,呵呵。

其次,例項化之前,應該先初始化自己的內部資料。

現在考慮繼承關係,執行順序為:

子類的靜態字段

子類的靜態構造方法

子類的例項字段

父類的靜態字段

父類的靜態構造方法

父類的例項字段

父類的例項構造方法

子類的例項構造方法

在子類的例項欄位和子類的例項構造方法之間,加入了父類的執行順序。這個其實也很好理解:在子類的例項構造方法之前,確實需要知道父類的資訊,因為子類要從父類那裡繼承一些東西。這就好比,沒有老子,哪來的兒子呢,呵呵。

這裡需要特別注意的是,並不是每次例項化都是上面的順序。因為靜態的成員只是在第一次例項化的時候執行,以後再例項化都不會在執行。很好理解,靜態的成員意味著大家共享,且只有這乙個。第一次例項化得到靜態成員後,以後大家都共享,再次例項化,沒有必要也不允許執行靜態成員的部分。

C 類例項化執行順序

確定類例項化時內部內容的執行順序,同時也考慮到繼承的關係。定義乙個父類parentclass和乙個子類subclass。父類 public class parentclass static int s 2 static public string name static parentclass pu...

類的例項化順序

首先列出例項化的順序 具體大家可以自行通過 進行驗證。在例項化的時候,可能會出現成員變數例項化類,那麼成員例項化。假造到public father father new father 時,在去初始化father這類的public father father new father 就很容易程式設計死迴...

類的例項化順序

package com.company.demo1 public class classinit class a public string s1 prtstring a的成員變數.public static string s2 prtstring a的static變數.protected a pu...