溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中 Calculator類的作用是什么

發(fā)布時間:2021-07-07 16:05:51 來源:億速云 閱讀:744 作者:Leah 欄目:編程語言

C#中 Calculator類的作用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

C# Calculator類

在C# 2.0中,除了可以對整個屬性設(shè)置public等訪問修飾符外,對內(nèi)部的get/set訪問器同樣可以設(shè)置訪問修飾符,當(dāng)然它要受到一定的限制。由于有些限制和接口、重寫有關(guān),我暫時不會介紹,在這里,我僅介紹訪問器和屬性的訪問修飾符沖突問題。
1、如果整個屬性被設(shè)置為public,則其訪問器沒有限制;
2、如果整個屬性被設(shè)置為protected internal,則訪問器的訪問修飾僅能設(shè)置為internal,protected或者private中的一種;
3、如果整個屬性被設(shè)置為internal或者protected,那么訪問器的訪問修飾只能是private。
如下例:

publicClassA  {  privatestringm_text;  privateintm_count;  publicstringText  {  get{returnm_text;}  protectedset{m_text=value;}  }  internalintCount  {  privateget{return5;}  privateset{m_count=value}  }  }

從程序的實質(zhì)來看,其實屬性就是一種特殊的方法,它等同于下面的代碼:

public int GetAge()  {   return m_age;  }  public void SetAge(int age)  {   m_age = age;  }

從這個意義上來理解get/set訪問器的訪問級別修飾,就更容易理解了。實質(zhì)上,所謂的訪問器的訪問級別修飾,不外乎就是對方法進(jìn)行訪問級別修飾罷了。當(dāng)然,C#中提供的屬性要比訪問字段的get/set方法更加簡便。一般而言,如要定義方法,應(yīng)該是和一個對象的行為有關(guān),例如系列三定義的User類中的SignIn()和SignOut()方法,它們代表的是對象User的行為:登錄和退出。

定義一個類的方法,必須包括五個要素:方法修飾符,方法名,返回類型,參數(shù),以及方法體,例如Add方法:

public int Add(int x, int y)  {   return x + y;  }

public即為我們的方法修飾符,它代表了該方法能被訪問的級別。當(dāng)然,修飾的方法的關(guān)鍵字還包括 static,virtual,abstract等,不過這些內(nèi)容會在以后介紹。方法名自然是Add了,自然屬于方法的名字。返回類型為int,代表該方法會返回一個結(jié)果,該結(jié)果類型為int類型。參數(shù)有兩個,分別為x和y,它們的類型都是int。調(diào)用者可以通過參數(shù)傳遞值到方法體中,并對它們進(jìn)行操作。方法體則是花括號中的內(nèi)容。

假設(shè)Add方法是定義在類Calculator中,那么該方法的調(diào)用為:

Calculator cal = new Calculator();  int result = cal.Add(3,5);

通過對Add的調(diào)用,并傳入3和5的參數(shù),***得到結(jié)果8,并返回。因此,此時變量result的值就為8。而***行代碼,則是利用new關(guān)鍵字對C# Calculator類進(jìn)行實例化,獲得一個對象cal。通過對象cal,才可以調(diào)用C# Calculator類的公共方法、屬性或字段。

為什么要進(jìn)行實例化呢?我們定義一個類類型,是為調(diào)用者所使用的,否則就失去其意義了。但我們定義的這樣一個類類型,僅僅是代表了某種格式而已,例如User類說明它是一個class,它擁有了一些字段、屬性和方法。通過這樣的定義,我們在使用這些類型的對象時,.Net能夠識別它。而如果真正要調(diào)用這些類型對象,就必須進(jìn)行”實例化”,這個操作就會在運行期間,創(chuàng)建一個個對象,并被放在內(nèi)存空間中供程序調(diào)用。就好比”人”就是一個類類型,而某一個具體的人,才是被實例化的、真正存在的對象。要使得一個類類型被實例化,就需要為該類型提供”構(gòu)造器”。構(gòu)造器是一種特殊的方法,它沒有返回類型,且其方法名和類型名保持一致,如C# Calculator類的定義以及它的構(gòu)造器:

public class Calculator  {   public Calculator()   {   }   public int Add(int x, int y)   {    return x + y;   }  }

Calculator()方法就是一個”構(gòu)造器”,這個構(gòu)造器并沒有參數(shù),在C#中,也被稱為默認(rèn)的構(gòu)造器,即使不定義該構(gòu)造器,.Net也會為它默認(rèn)創(chuàng)建。例如在Calculator類中,我們完全可以刪去Calculator()構(gòu)造器的定義。然而,一旦我們定義了有參數(shù)的構(gòu)造器時,則該默認(rèn)構(gòu)造器將不存在,如果我們再需要不帶參數(shù)創(chuàng)建實例的話,就需要顯式創(chuàng)建該構(gòu)造器了。例如之前的User類。如果姓名和密碼是該類一個非常重要的屬性,大部分情況下,如果要創(chuàng)建User對象時,都需要這兩個屬性的值時,我們就可以為User類專門創(chuàng)建一個構(gòu)造器:

public class User  {   public User(string name, string password)   {    m_name = name;    m_password = password;   }   }

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI