C 物件導向程式設計技術(一)

2021-08-28 22:47:34 字數 2875 閱讀 2815

物件導向程式設計(

object-oriented programming, oop

)的基本思想是:將資料及處理這些資料的操作都封裝到乙個稱為類(

class

)的資料結構中。

一、類和物件

1. 類的宣告

[類修飾符] class 類名[:基類類名]

注意:和 c++ 不同,c# 不將類的宣告與實現分開。不會區分標頭檔案和實現檔案的區別,宣告和實現通常出現在同乙個檔案中。

2. 物件的宣告

類名 例項名 = new 類名([引數]);

如:student stu1 = new student();

3. 類的成員(1)資料成員:字段、常量

(2)函式成員:屬性、方法、運算子、索引器、建構函式

二、欄位和屬性

[字段修飾符] 字段型別  欄位名;

2. 屬性(1)獲取或修改欄位的值,提供對類或物件性質的訪問

(2)get 訪問器用來返回屬性值,通過 return 返回

(3)set 訪問器用來為屬性賦值,要使用隱式引數 value

[訪問修飾符] 資料型別 屬性名

getset

//宣告字段

private string id;

//宣告屬性

public string id

set}

3. 訪問修飾符

三、方法與過載

1. 方法:表現類或物件行為的成員函式

訪問修飾符 返回值型別 方法名 () 

(1)宣告方法時,必須指定方法的返回型別;若不返回值,則必須指定返回型別為 void 

(2)呼叫方法時,在返回型別、引數個數、引數順序以及引數型別等方面要實現精確匹配

2. 傳遞

(1)按值傳遞:c# 預設所有的方法都是按值傳遞引數的,實參變數的值傳遞給形參變數時是一種單向值傳遞。

(2)按引用傳遞:指實參傳遞給形參時,不是將實參的值複製給形參,而是將實參的引用傳遞給形參,實參和形參使用的是同乙個記憶體中的值。當形參的值發生改變時,同時也就改變實參的值。

3. 方法過載

(1)過載的方法名稱必須相同

(2)過載的方法,其形參個數或型別必須不同 

4. 建構函式

(1)建構函式的名稱必須與類的名稱一樣

(2)建構函式可以帶引數也可以不帶引數,但沒有返回值

(3)建構函式在物件定義時被自動呼叫

(4)如果宣告建構函式時使用的引數名稱與類字段的名稱相同,則建構函式中使用的類欄位名稱需要用關鍵字 this 引導

class f

}

(5)過載建構函式:建構函式可以被過載,但不可以被繼承 

5. this關鍵字

(1)this 關鍵字用來引用類的當前例項,成員通過 this 關鍵字可以知道自己屬於哪乙個例項。

(2)this 關鍵字只能用在類的建構函式、例項方法和例項訪問器中

(3)在其它地方(如靜態方法中)使用 this 關鍵字均是錯誤的

四、靜態類與分部類

1. 靜態類

(1)宣告:使用 static 關鍵字來修飾這個類。靜態類不能例項化,不能使用 new 關鍵字建立靜態類型別的變數,所以使用類名訪問靜態類的成員。

(2)主要特性:

2. 靜態字段

(1)靜態欄位不屬於任何乙個特定的物件,而是屬於類,或者說屬於全體物件,是被全體物件共享的資料

(2)如果不對靜態字段進行初始化,靜態欄位將自動獲得預設值(0、null、false等)。乙個靜態字段即使沒有被顯式地賦值,也可以被訪問

(3)宣告靜態字段需要使用 static 修飾符,c# 中靜態欄位或方法可以包含訪問修飾符

(4)非靜態類可以定義靜態字段

3. 靜態方法

(1)如果某個方法使用時並不需要與具體的物件聯絡,例如,方法操作的資料並不是某個具體物件的資料,而是表示全體物件特徵的資料,甚至方法操作的資料與物件根本無關,這時可以將該方法宣告乙個靜態方法。

(2)靜態方法同樣使用修飾符 static 宣告。

(3)靜態方法屬於類,只能使用類名進行呼叫,不能使用物件名進行呼叫。

(4)靜態方法與非靜態方法一樣可以過載。

4. 分部類

(1)使用 partial 關鍵字修飾符實現分部類定義。表示把對某個類的描述寫在不同地方,甚至寫到兩個或多個不同的檔案中去。

(2)類、結構、介面或方法的定義拆分到兩個或多個原始檔中,編譯時編譯器自動把所有部分組合起來進行編譯。

(3)partial 修飾符只能出現在緊靠關鍵字 class、struct 或 inte***ce 前面的位置。

(4)同一型別的各個部分的所有分部類的定義都必須在同一程式集或同一模組中進行定義,分部定義不能跨越多個模組。

物件導向程式設計技術基礎彙總

知識點 掌握程度 語句了解 陣列掌握 建構函式 掌握字段 屬性 掌握靜態類,密封類,抽象類 掌握介面 熟練繼承 掌握1.console.writeline 列印到控制台並換行 2.c 型別 值型別 引用型別 3.namespace 不同資料夾下的類可以屬於同乙個namespace 4.字串相加 使用...

C 中物件導向程式設計技術的應用 二

1,重寫虛方法 1 虛方法 虛方法就是允許被其子類重新定義的方法,在宣告時,需要用virtual修飾符 注意 1,virtual修飾符不能與static abstract或者override修飾符同時使用 2,由於虛方法不能是私有的,所有virtual修飾符不能與private修飾符同時使用 例如 ...

C 中物件導向程式設計技術 結構與類

1,結構計算 結構是一種可以包含資料成員和放方法員的值型別資料結構。為結構分配資料時不需要從託管堆中分配記憶體,結構型別的變數直接包含了該結構的資料。結構中可以包含建構函式 常量 字段 方法 屬性 運算子 事件和巢狀型別等,但如果要同時包括上述幾種成員,則應該考慮使用類。使用結構對於小的資料結構特別...