[.net 物件導向程式設計基礎] (9) 類和類的例項

yubinfeng發表於2015-06-04

[.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.類的命名規範:採用首字母大寫規則,不要使用系統類名或與修飾符相同的名字;

  

==============================================================================================

返回目錄

 <如果對你有幫助,記得點一下推薦哦,有不明白的地方或寫的不對的地方,請多交流>

============================================================================================== 

相關文章