[.net 物件導向程式設計基礎] (9) 類和類的例項
類 ,顧名思義就是分類、類別的意思。我們要物件導向程式設計,就需要對不同的事物進行分類。類可以說是.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
- 類預設的訪問修飾符為:internal
- 類的成員預設的訪問修飾符則為: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 }
5. 分散式類
某些類功能複雜,有大量的欄位、屬性,事件、方法,甚至套嵌成員。如果將類定義都寫在一起,檔案龐大,程式碼行數多,不便於理解和除錯。
分散式類的特徵:
A、相同的類名;
B、有partial修飾符;
C、有相同的名稱空間;
//檔名為 partOne.cs using System; public partial class example { public void method1(){} }
//檔名為 partTwo.cs using System; public partial class example { public void method2(){} }
兩個方法都屬於類example但被放到不同的檔案中,編輯器在發現partial後檢查類名和名稱空間相同,會自動把檔案編譯到一起,形成一個完整的類。
要點:
1.類可以使用修飾符static宣告為靜態類,申明靜態後,類下所有成員必須是靜態;
2.類的預設訪問修飾符為:internal,定義一個私的類時,要新增修飾符private;而類的成員預設訪問修飾符則為:private,公有方法需要申明為:public
3.類的命名規範:採用首字母大寫規則,不要使用系統類名或與修飾符相同的名字;
==============================================================================================
返回目錄
<如果對你有幫助,記得點一下推薦哦,有不明白的地方或寫的不對的地方,請多交流>
==============================================================================================