位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C# > 問(wèn)題詳情

C# 構(gòu)造函數(shù)

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-04

    對(duì)象的初始化過(guò)程是自動(dòng)完成的。例如,我們不需要自己尋找適于存儲(chǔ)新對(duì)象的內(nèi)存空間。但是,在初始化對(duì)象的過(guò)程中,有時(shí)需要執(zhí)行一些額外的工作。例如,需要初始化對(duì)象存儲(chǔ)的數(shù)據(jù)。構(gòu)造函數(shù)就是用于初始化數(shù)據(jù)的函數(shù)。

    所有的類定義都至少包含一個(gè)構(gòu)造函數(shù)。在這些構(gòu)造函數(shù)中,可能有一個(gè)默認(rèn)構(gòu)造函數(shù),該函數(shù)沒(méi)有參數(shù), 與類同名。類定義還可能包含幾個(gè)帶有參數(shù)的構(gòu)造函數(shù),稱為非默認(rèn)的構(gòu)造函數(shù)。代碼可以使用它們以許多方式實(shí)例化對(duì)象,例如,給存儲(chǔ)在對(duì)象中的數(shù)據(jù)提供初始值。


在C#中,用new關(guān)鍵字來(lái)調(diào)用構(gòu)造函數(shù)。例如,可用下面的方式通過(guò)其默認(rèn)的構(gòu)造函數(shù)實(shí)例化一個(gè)

    CupOfCoffee myCup = new CupOfCoffee();

還可以用非默認(rèn)的構(gòu)造函數(shù)來(lái)實(shí)例化對(duì)象。例如,CupOfCoffee類有一個(gè)非默認(rèn)的構(gòu)造函數(shù),它使用一個(gè)參數(shù)在初始化時(shí)設(shè)置咖啡豆的品牌:

    CupOfCoffee myCup = new CupOfCoffee ("Blue Mountain");


    構(gòu)造函數(shù)與字段、屬性和方法一樣,可以是公共或私有的。在類外部的代碼不能使用私有構(gòu)造函數(shù)實(shí)例化對(duì)象,而必須使用公共構(gòu)造函數(shù)。這樣,通過(guò)把默認(rèn)構(gòu)造函數(shù)設(shè)置為私有的,就可以強(qiáng)制類的用戶使用非默認(rèn)的構(gòu)造函數(shù)。

    一些類沒(méi)有公共的構(gòu)造函數(shù),這表明外部的代碼不可能實(shí)例化它們,這些類稱為不可創(chuàng)建的類,但這些類并不是完全沒(méi)有用的。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部