淺談C# 構(gòu)造方法(函數(shù))
一、概括
1.通常創(chuàng)建一個對象的方法如圖:

通過 Student tom = new Student(); 創(chuàng)建tom對象,這種創(chuàng)建實例的形式被稱為構(gòu)造方法。
簡述:用來初始化對象的,為類的成員賦值。
2.構(gòu)造方法特點
a.方法名與類名相同;
b.沒有返回值類型;
c.必須要通過new的形式調(diào)用;
3.語法
訪問修飾符 類名([參數(shù)])
{
方法體
}
二、 無參構(gòu)造方法
1.在默認(rèn)情況下,系統(tǒng)將會給類分配一個無參構(gòu)造方法,并且沒有方法體。
通過反編譯工具看出:

我們也可以自定義一個無參構(gòu)造方法,在無參構(gòu)造方法中對類的屬性進(jìn)行賦值等操作。
三、帶參構(gòu)造方法
如果僅僅局限于無參構(gòu)造方法,那么屬性賦值是固定的,沒有對外的可變性。有了參數(shù),給予可以根據(jù)業(yè)務(wù)邏輯,去針對性的賦值操作。

四、構(gòu)造方法可以形成方法的重載

五、強(qiáng)制使用有參構(gòu)造方法
上面描述了,系統(tǒng)在類沒有構(gòu)造方法的時候,會生成一個無參構(gòu)造方法。一旦我們在類中編寫了構(gòu)造方法,那么這個自動生成的無參構(gòu)造函數(shù)就不會生成。根據(jù)此特性,我們可以只定義有參構(gòu)造方法,因此在創(chuàng)建對象的時候,就只能賦值使用有參的構(gòu)造方法。

構(gòu)造方法具有強(qiáng)制性的特點。
六、構(gòu)造方法的復(fù)用
1.遵循面向?qū)ο笏枷?,因此我們寫代碼的時候應(yīng)該減少冗余,增強(qiáng)復(fù)用性。構(gòu)造方法復(fù)用形式如下:

用”:this”調(diào)用自身其他構(gòu)造方法。
2.this關(guān)鍵字
a.當(dāng)成員變量和局部變量重名時使用this區(qū)分。
b.this表示當(dāng)前類的對象,用于訪問該類的成員變量或方法。
七、對象初始化器
1.初始化對象的形式
a.常規(guī)的“”對象名.屬性名=值;“”
b.構(gòu)造方法;
c.對象初始化器;
2.實現(xiàn)形式:

3.描述
對象初始化器是一種初始化對象的形式,本質(zhì)上其實就是一種語法糖。它不具有像構(gòu)造方法那樣的強(qiáng)制性,在為屬性賦值的時候不用遵守賦值的順序和數(shù)量。

4.對象初始化器與構(gòu)造方法的異同點
a.構(gòu)造方法具有強(qiáng)制性,對象初始化器沒有強(qiáng)制性。構(gòu)造方法本質(zhì)上是一種特性的方法,所有就要遵循方法的調(diào)用邏輯。
b.對象初始化器功能單一,只能完成對象屬性初始化。而構(gòu)造方法可以在方法體中靈活的分配,如對象創(chuàng)建時讀取文件等需求。
c.順序的不同,對象初始化器是在調(diào)用了構(gòu)造方法才執(zhí)行的屬性賦值。而構(gòu)造方法在new 的時候進(jìn)行調(diào)用,并且邏輯代碼都是在類里面的。
以上就是淺談C# 構(gòu)造方法(函數(shù))的詳細(xì)內(nèi)容,更多關(guān)于C# 構(gòu)造方法(函數(shù))的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用C# Winform應(yīng)用程序獲取網(wǎng)頁源文件的解決方法
本篇文章是對使用C# Winform應(yīng)用程序獲取網(wǎng)頁源文件的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#使用正則表達(dá)式實現(xiàn)首字母轉(zhuǎn)大寫的方法
這篇文章主要介紹了C#使用正則表達(dá)式實現(xiàn)首字母轉(zhuǎn)大寫的方法,涉及C#基于正則表達(dá)式操作字符串的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
C#使用OpenCvSharp4庫讀取電腦攝像頭數(shù)據(jù)并實時顯示
OpenCvSharp4庫是一個基于.Net封裝的OpenCV庫,本文主要給大家介紹了C#使用OpenCvSharp4庫讀取電腦攝像頭數(shù)據(jù)并實時顯示的詳細(xì)方法,感興趣的朋友可以參考下2024-01-01
WPF利用TabControl控件實現(xiàn)拖拽排序功能
在UI交互中,拖拽操作是一種非常簡單友好的交互,這篇文章主要為大家介紹了WPF如何利用TabControl控件實現(xiàn)拖拽排序功能,需要的小伙伴可以參考一下2023-10-10

