C 建構函式

2021-07-24 13:50:17 字數 1480 閱讀 4410

【前言】

【內容】

普通辦法訪問屬性缺點:

當我們訪問類的屬性的時候,需要多次賦值,出現了冗餘的**;當我們對zsstu.age=-88,當對寫入操作沒有限制的時候,就破壞了資料的完整性,並且不安全。

static void main(string args)

解決:建構函式

這時我們就要定義建構函式:建構函式就是乙個方法,但方法名是類名。

作用:

通過建構函式可以避免繁瑣的賦值操作,屬性為只有

讀操作,這樣保證了屬性的安全很完整性,但是屬性不能賦值,如何對屬性操作呢?這時可以通過建構函式對屬性的值進行初始化。 

如何定義?

下面就是定義了乙個person類的建構函式,括號裡面的是引數,把引數的值賦給字段。

namespace _03_類的建構函式

private string name;

public string name

}private char gender;

public char gender

}private int age;

public int age

}

怎麼實現屬性的初始化操作?

當我們在主函式中例項化並呼叫這個方法的時候,會把值傳遞給上面的在person類中定義的建構函式,也就是傳參,然後把傳遞過來的值賦值給字段。

class program

}

優點:

1.不會像之前那樣繁鎖地賦值

2.當為某個類定義了建構函式之後,這個類的屬性為唯讀屬性,通過建構函式就可以初始化該屬性,這樣保證了屬性值得安全和完整性。

建構函式的過載:

在乙個類中可以定義多個建構函式,以便提供多個不同的初始化方法,這些建構函式有相同的名字,只是引數的數目和型別不同。

下面定義了三個建構函式,只是引數不同。

public person(string name, char gender, int age)//有參的建構函式,原來預設無引數的被覆蓋了

//想用到無引數的怎麼辦,建構函式的過載

public person() //無引數的建構函式

public person(string name)

建構函式如何使用?

在主函式中使用過載的建構函式,需要注意:對於物件來說,每個物件只執行其中乙個建構函式。

class program

}

【總結】

建構函式是一種特殊的方法,沒有返回值,沒有void宣告。直接傳遞引數就可以實現賦值操作,預設的是乙個無參的建構函式,如果定義了乙個有參的建構函式,則無參的就不在存在。如果想使用,則需要重新宣告。

C 建構函式 拷貝建構函式

建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...

C 構造器(建構函式)

定義和作用 構造器是在構建類的 引用時 自動執行的方法。所以,每個類都必須至少要有乙個構造器。在訪問乙個類的時候,編譯器最先執行構造器中的 它與類同名,帶引數的構造器能夠獲取引數,但是與方法不同的是 構造器雖然也是一種 例項型別 即必須通過例項來進行呼叫,也可以稱之為引用型別 但是卻不能返回任何值 ...

C 建構函式

建構函式是一種特殊的成員函式,它主要用於為物件分配儲存空間,對資料成員進行初始化.1 建構函式的名字必須與類同名 2 建構函式沒有返回型別,它可以帶引數,也可以不帶引數 3 建構函式的主要作用是完成對類的初始化工作 4 在建立乙個類的新物件 使用new關鍵字 時,系統回自動呼叫給類的建構函式初始化新...