日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 深入理解類(實(shí)例構(gòu)造函數(shù))

admin
2025年5月19日 17:27 本文熱度 395

實(shí)例構(gòu)造函數(shù)

實(shí)例構(gòu)造函數(shù)是一個(gè)特殊的方法,它在創(chuàng)建類的每個(gè)新實(shí)例時(shí)執(zhí)行。

  • 構(gòu)造函數(shù)用于初始化類實(shí)例的狀態(tài)。
  • 如果希望能從類的外部創(chuàng)建類的實(shí)例,需要將構(gòu)造函數(shù)聲明為public。 圖7-2闡述了構(gòu)造函數(shù)的語(yǔ)法。除了下面這幾點(diǎn),構(gòu)造函數(shù)看起來很像類聲明中的其他方法。
  • 構(gòu)造函數(shù)的名稱和類名相同。
  • 構(gòu)造函數(shù)不能有返回值。

?

例如,下面的類使用構(gòu)造函數(shù)初始化其字段。本例中,它有一個(gè)名為TimeOfInstantiation 的字段被初始化為當(dāng)前的日期和時(shí)間。

class MyClass
{
    DateTime TimeOfInstantiation;  //字段

    ...
    pubic MyClass()                //構(gòu)造函數(shù)
    {
        TimeOfInstantiation =DateTime.Now;   //初始化字段
    }
    ...
}

說明 在學(xué)完靜態(tài)屬性那一節(jié)后,我們可以仔細(xì)看看初始化TimeOfInstantiation那一行。 DateTime類(實(shí)際上它是一個(gè)結(jié)構(gòu),但由于還沒介紹結(jié)構(gòu),你可以把它先當(dāng)成類)是從 BCL中引入的,Now是類DateTime的靜態(tài)屬性。Now屬性創(chuàng)建了一個(gè)新的DateTime類的 實(shí)例,將其初始化為系統(tǒng)時(shí)鐘中的當(dāng)前日期和時(shí)間,并返回新DateTime實(shí)例的引用。

帶參數(shù)的構(gòu)造函數(shù)

構(gòu)造函數(shù)在下列方面和其他方法相似。

  • 構(gòu)造函數(shù)可以帶參數(shù)。參數(shù)的語(yǔ)法和其他方法完全相同。
  • 構(gòu)造函數(shù)可以被重載。 在使用創(chuàng)建對(duì)象表達(dá)式創(chuàng)建類的新實(shí)例時(shí),要使用new運(yùn)算符,后面跟著類的某個(gè)構(gòu)造函數(shù)。 new運(yùn)算符使用該構(gòu)造函數(shù)創(chuàng)建類的實(shí)例。 例如,在下面的代碼中,Class1有3個(gè)構(gòu)造函數(shù):一個(gè)不帶參數(shù),一個(gè)帶int參數(shù),一個(gè)帶 string參數(shù)。Main使用各個(gè)構(gòu)造函數(shù)分別創(chuàng)建實(shí)例。
class Class1
{
    int Id;
    string Name;

    public Class1(){Id=28;Name="Nemo";}     //構(gòu)造函數(shù)0
    public Class1() {ID=val;nameof="Nemo";} //構(gòu)造函數(shù)1
    public Class1(String name){Name=name;}  //構(gòu)造函數(shù)2

    public void SoundOff()
    {
        Console.WriteLine($"Name{Name},Id{Id}");
    }
}

class Program
{
    static void Main()
    {
        Class1 a=new Class1();       //調(diào)用構(gòu)造函數(shù)0
               b=new Class1(7);      //調(diào)用構(gòu)造函數(shù)1
               c=new Class1("Bill"); //調(diào)用構(gòu)造函數(shù)2

        a.SoundOff();
        b.SoundOff();
        c.SoundOff();
    }
}

默認(rèn)構(gòu)造函數(shù)

如果在類的聲明中沒有顯式地提供實(shí)例構(gòu)造函數(shù),那么編譯器會(huì)提供一個(gè)隱式的默認(rèn)構(gòu)造函 數(shù),它有以下特征。

  • 沒有參數(shù)。
  • 方法體為空。

如果你為類聲明了任何構(gòu)造函數(shù),那么編譯器將不會(huì)為該類定義默認(rèn)構(gòu)造函數(shù)。 例如,下面代碼中的Class2聲明了兩個(gè)構(gòu)造函數(shù)。

  • 因?yàn)橐呀?jīng)至少有一個(gè)顯式定義的構(gòu)造函數(shù),所以編譯器不會(huì)創(chuàng)建額外的構(gòu)造函數(shù)。
  • 在Main中,試圖使用不帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建新的實(shí)例。因?yàn)闆]有無參數(shù)的構(gòu)造函數(shù), 所以編譯器會(huì)產(chǎn)生一條錯(cuò)誤消息。
class Class2
{
    publicClass2(int Value) {...}  //構(gòu)造函數(shù)0
    publicClass2(String Value){...} //構(gòu)造函數(shù)1
}

class Program
{
    static void Main()
    {
        Class2 a=new Class2();   //錯(cuò)誤!沒有無參數(shù)的構(gòu)造函數(shù)
        ...
    }
}

說明 可以像對(duì)其他成員那樣,對(duì)實(shí)例構(gòu)造函數(shù)設(shè)置訪問修飾符。可以將構(gòu)造函數(shù)聲明為public, 這樣在類的外部也能創(chuàng)建類的實(shí)例。也可以創(chuàng)建private構(gòu)造函數(shù),這樣在類外部就不 能調(diào)用該構(gòu)造函數(shù),但在類內(nèi)部可以。


該文章在 2025/5/21 9:28:24 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved