C 建構函式 建立物件

2021-06-01 17:34:50 字數 1600 閱讀 2019

建構函式(constructor)用於執行類的例項的初始化。每個類都有建構函式。c#中通過new關鍵字建立物件的過程其實就是通過new關鍵字呼叫類的建構函式的過程。建立物件時,必須呼叫建構函式,如果沒有定義建構函式,系統會提供乙個預設的建構函式。

在訪問乙個類的時候,系統將最先執行建構函式中的語句,任何建構函式的執行都隱式的呼叫了系統提供的預設建構函式base(),可以有引數,也可以沒有。有引數的時候,類在例項化的時候必須傳遞引數。  

建構函式是類中的特殊方法,c#使用建構函式來初始化變數。建立建構函式的語法如下:

class 類名

}建構函式的定義規則:

(1)c# 語言的建構函式的名稱必須與類名相同。

(2)建構函式沒有返回值。它可以帶引數,也可以不帶引數。

(3)宣告類物件時,系統自動呼叫建構函式。在建構函式中不要做對類的例項進行初始化以外的事情,也不能被顯式地呼叫。

(4)建構函式可以過載,從而提供初始化類物件的不同方法;

(5)若在宣告時未定義建構函式,系統會自動生成預設的建構函式,此時建構函式的函式體為空。

(6)靜態建構函式,用static修飾,用於初始化靜態變數,乙個類只允許有乙個建構函式,在類例項化時載入,這時修飾符public、private失去作用。

(7)建構函式可以使用public、protected、private修飾符。一般地,建構函式總是public 型別的。private 型別的建構函式表明類不能被例項化,通常用於只含有靜態成員的類。

(8)引用父類構造時用():base()方法,引用自身過載的構造使用():this(int para)。

(8)乙個建構函式的返回型別是這個類的乙個例項,而乙個普通方法的返回型別可以是任何型別。

注意:1、定義了乙個帶參建構函式後,一定要定義乙個無參建構函式,這樣可以避免子類呼叫時出錯。

2、呼叫基類建構函式:base() 或 :base(引數列表) 呼叫本類其它建構函式 :this() 或 :this(引數列表)

3、只有在用base顯示呼叫父類的建構函式時,程式才不會預設的呼叫不帶引數的建構函式。

下面這種建構函式不接受任何引數,稱為無引數建構函式。

classtestclass

// 由clr提供

}   

下面的**說明了建構函式的宣告方式:

// 構造物件時將執行建構函式

using system;

public class dog

public string name;

public dog()    // 宣告建構函式

public static void main()

」。);}}

在訪問乙個類的時候,系統將首先執行建構函式中的語句。建構函式的功能是建立物件,使物件的狀態合法化。在從建構函式返回之前,物件都是不確定的,不能用於執行任何操作;只有在建構函式執行完成之後,存放物件的記憶體塊中才存放這乙個類的例項。

說明:成員變數使用了this關鍵字,在這裡this代表當前例項。使用this關鍵字編碼時可以有效防止變數名輸入錯誤。

上述**的執行結果如下:

dog():dog類已被初始化。

mydog的名字為「未知」。

顯然,在建立物件時執行了建構函式。

C 中建構函式建立物件

1 c 中建構函式的呼叫方式主要分為兩類 1 顯示呼叫 eg stock food stock 360 250,2.5 2 隱式呼叫 eg stock food 360 250,2.5 注意 顯示呼叫建構函式大多編譯器理解為對food進行初始化,這也是最正確的理解方式,因此直道food所在的作用域到...

建構函式建立物件

字面量方式 new 關鍵字 借用建構函式 在記憶體中建立乙個新的空物件。讓 this 指向這個新的物件。執行建構函式裡面的 給這個新物件新增屬性和方法。返回這個新物件 建構函式裡面不需要 return 例項成員 建構函式內部通過this新增的成員,例項成員只能通過例項化的物件來訪問 靜態成員 在建構...

建構函式建立物件

建構函式建立物件 function box name,age 建構函式沒有new object,但是它後台會自動var obj new object this就相當於obj 建構函式不需要返回物件引用,它是後台自動返回的 建構函式也是函式,但函式名第乙個字母要大寫 必須new建構函式名 new bo...