淺談C# 構(gòu)造方法(函數(shù))
一、概括
1.通常創(chuàng)建一個(gè)對(duì)象的方法如圖:
通過(guò) Student tom = new Student(); 創(chuàng)建tom對(duì)象,這種創(chuàng)建實(shí)例的形式被稱為構(gòu)造方法。
簡(jiǎn)述:用來(lái)初始化對(duì)象的,為類的成員賦值。
2.構(gòu)造方法特點(diǎn)
a.方法名與類名相同;
b.沒(méi)有返回值類型;
c.必須要通過(guò)new的形式調(diào)用;
3.語(yǔ)法
訪問(wèn)修飾符 類名([參數(shù)])
{
方法體
}
二、 無(wú)參構(gòu)造方法
1.在默認(rèn)情況下,系統(tǒng)將會(huì)給類分配一個(gè)無(wú)參構(gòu)造方法,并且沒(méi)有方法體。
通過(guò)反編譯工具看出:
我們也可以自定義一個(gè)無(wú)參構(gòu)造方法,在無(wú)參構(gòu)造方法中對(duì)類的屬性進(jìn)行賦值等操作。
三、帶參構(gòu)造方法
如果僅僅局限于無(wú)參構(gòu)造方法,那么屬性賦值是固定的,沒(méi)有對(duì)外的可變性。有了參數(shù),給予可以根據(jù)業(yè)務(wù)邏輯,去針對(duì)性的賦值操作。
四、構(gòu)造方法可以形成方法的重載
五、強(qiáng)制使用有參構(gòu)造方法
上面描述了,系統(tǒng)在類沒(méi)有構(gòu)造方法的時(shí)候,會(huì)生成一個(gè)無(wú)參構(gòu)造方法。一旦我們?cè)陬愔芯帉懥藰?gòu)造方法,那么這個(gè)自動(dòng)生成的無(wú)參構(gòu)造函數(shù)就不會(huì)生成。根據(jù)此特性,我們可以只定義有參構(gòu)造方法,因此在創(chuàng)建對(duì)象的時(shí)候,就只能賦值使用有參的構(gòu)造方法。
構(gòu)造方法具有強(qiáng)制性的特點(diǎn)。
六、構(gòu)造方法的復(fù)用
1.遵循面向?qū)ο笏枷?,因此我們寫代碼的時(shí)候應(yīng)該減少冗余,增強(qiáng)復(fù)用性。構(gòu)造方法復(fù)用形式如下:
用”:this”調(diào)用自身其他構(gòu)造方法。
2.this關(guān)鍵字
a.當(dāng)成員變量和局部變量重名時(shí)使用this區(qū)分。
b.this表示當(dāng)前類的對(duì)象,用于訪問(wèn)該類的成員變量或方法。
七、對(duì)象初始化器
1.初始化對(duì)象的形式
a.常規(guī)的“”對(duì)象名.屬性名=值;“”
b.構(gòu)造方法;
c.對(duì)象初始化器;
2.實(shí)現(xiàn)形式:
3.描述
對(duì)象初始化器是一種初始化對(duì)象的形式,本質(zhì)上其實(shí)就是一種語(yǔ)法糖。它不具有像構(gòu)造方法那樣的強(qiáng)制性,在為屬性賦值的時(shí)候不用遵守賦值的順序和數(shù)量。
4.對(duì)象初始化器與構(gòu)造方法的異同點(diǎn)
a.構(gòu)造方法具有強(qiáng)制性,對(duì)象初始化器沒(méi)有強(qiáng)制性。構(gòu)造方法本質(zhì)上是一種特性的方法,所有就要遵循方法的調(diào)用邏輯。
b.對(duì)象初始化器功能單一,只能完成對(duì)象屬性初始化。而構(gòu)造方法可以在方法體中靈活的分配,如對(duì)象創(chuàng)建時(shí)讀取文件等需求。
c.順序的不同,對(duì)象初始化器是在調(diào)用了構(gòu)造方法才執(zhí)行的屬性賦值。而構(gòu)造方法在new 的時(shí)候進(jìn)行調(diào)用,并且邏輯代碼都是在類里面的。
以上就是淺談C# 構(gòu)造方法(函數(shù))的詳細(xì)內(nèi)容,更多關(guān)于C# 構(gòu)造方法(函數(shù))的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#對(duì)Xamarin框架進(jìn)行數(shù)據(jù)綁定
這篇文章介紹了C#對(duì)Xamarin框架進(jìn)行數(shù)據(jù)綁定,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01C# SaveFileDialog與OpenFileDialog用法案例詳解
這篇文章主要介紹了C# SaveFileDialog與OpenFileDialog用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08C# IQueryable<T>揭開(kāi)表達(dá)式樹的神秘面紗
這篇文章主要介紹了C# IQueryable<T>表達(dá)式樹,對(duì)IQueryable<T>感興趣的同學(xué),必須要仔細(xì)看一下2021-04-04基于WPF實(shí)現(xiàn)PDF的顯示與轉(zhuǎn)換
這篇文章為大家詳細(xì)主要介紹了如何基于WPF實(shí)現(xiàn)PDF的顯示并轉(zhuǎn)換成圖片,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12超簡(jiǎn)單C#獲取帶漢字的字符串真實(shí)長(zhǎng)度(單個(gè)英文長(zhǎng)度為1,單個(gè)中文長(zhǎng)度為2)
正常情況下,我們是直接去string的length的,但是漢字是有兩個(gè)字節(jié)的,所以直接用length是錯(cuò)的2018-03-03基于NET?Core?的Nuget包制作、發(fā)布和運(yùn)用流程解析(完整過(guò)程)
這篇文章主要介紹了基于NET?Core?的Nuget包制作、發(fā)布和運(yùn)用流程,本文通過(guò)圖文并茂的形式給大家介紹了Nuget包制作過(guò)程,感興趣的朋友跟隨小編一起看看吧2022-02-02