類 ,顧名思義就是分類、類別的意思。我們要面向對象編程,就需要對不同的事物進行分類。類可以說是.net面向對象的核心。
類:就是具有相同的屬性和功能的對象的抽象的集合。
1.類的定義
<訪問修飾符> class <類名> { 類成員(字段、屬性、方法、事件)}
舉例說明,比如“人類”這就是一個類,里面可以包含屬性 比如性別,種族,國家等。除了包含屬性之外,還包含一些其他功能,比如:吃飯、睡覺等,可以理解為類的方法。
代碼,如下:
1 class Person 2 { 3 public string gender { get; set; } 4 public string race { get; set; } 5 public string Country { get; set; } 6 public string Eat(string strCountry) 7 { 8 switch (strCountry) 9 { 10 case "美國": 11 12 return "愛吃西餐"; 13 14 case "韓國": 15 16 return "愛吃泡菜"; 17 default: 18 return "不知道"; 19 } 20 } 21 }
對於類的修飾符,支持上節說的五個訪問修飾符
訪問修飾符 |
說明 |
public |
公有訪問。不受任何限制。 |
private |
私有訪問。只限於本類成員訪問,子類,實例都不能訪問。 |
protected |
保護訪問。只限於本類和子類訪問,實例不能訪問。 |
internal |
內部訪問。只限於本項目內訪問,其他不能訪問。 |
protected internal |
內部保護訪問。只限於本項目或是子類訪問,其他不能訪問 |
- 類的命名空音默認修飾符為:public
- 類默認的訪問修飾符為:public
- 類的成員默認的訪問修飾符則為:private
- 類成員的作用域永遠超不出包含它的類
- 可以申明一個靜態類static class ClassName,但是它的成員必須全部顯式定義為靜態
2.類的實例化
類的實例 :就是類的一個真實的對象
<類名> <實例名> = new <類名>([構造函數的參數])
比如上面定義的人類,是一個類,而具體的某一個人,就是人類的實例,從類到類的實例的這個過程,叫類的實例化。
Person person=new Person();
3.構造函數
構造函數,又叫構造方法,就是對類進行初始化的方法。
其名稱同類名,沒有返回值,也不需要void ,在new的時候調用。
所有的類都有構造函數,只不過C#會默認一個無參數的構造函數,如果不定義,則使用默認。
如果定義了構造函數,則默認失效。
4.嵌套類
C#允許使用類嵌套
嵌套類型被視為是外層類型的成員,因此嵌套類型可以訪問外層類型中的所有其他成員。
根據類的成員默認訪問修飾符為:private的原則,嵌套類默認訪問修飾符為private
嵌套類型可以自由訪問外層類型的成員,而不在乎那些成員是否私有。外層類型如果想訪問嵌套類型,則要受到訪問規則的限制。
關於嵌套類的繼承(后面會詳細說明繼承),如果一個類型繼承了一個包含嵌套類型的類型,那么它也會自然的繼承基類型中的嵌套類型,因為那個嵌套類型本身就是基類型的一個成員。因此只要那個嵌套類型不是private或者天生不能被繼承的,子類型中新聲明的嵌套類型還可以繼承那個嵌套類型。
下面是嵌套類代碼:
1 static class Tree 2 { 3 private static string _treeLeafColor = "Green"; 4 static class AppleTree 5 { 6 private static string appleTreeLeaf = _treeLeafColor; 7 } 8 }
要點:
1.類可以使用修飾符static聲明為靜態類,申明靜態后,類下所有成員必須是靜態;
2.類的默認訪問修飾符為:public,定義一個私的類時,要添加修飾符private;而類的成員默認訪問修飾符則為:private,公有方法需要申明為:public
3.類的命名規范:采用首字母大寫規則,不要使用系統類名或與修飾符相同的名字;