《大話設計模式》學習心得系列(二)

2022-09-17 06:36:07 字數 1564 閱讀 1614

物件導向基礎(2)

本博文意在鞏固基礎知識,高手請繞過。

物件導向的三大特徵:封裝、繼承、多型

什麼是封裝?

每個物件都包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來完成自己的操作。這樣方法和屬性包含在類中,通過類的例項來實現。

類將資料和運算元據的方法結合成乙個單位。在設計類時,不希望直接訪問類中的資料,而是希望通過方法來訪問資料。如此就可以達到封裝資料的目的,方便以後維護、公升級,也可以在運算元據時多一層判斷,提高安全性。

使用封裝可以將資料隱藏起來,形成乙個封閉空間。在編寫程式時,對類的成員使用不同的訪問修飾符,從而定義它們的訪問級別。

封裝的優點:

1.減少耦合;

2.類內部的實現可以自由的修改;

3.類具有清晰的對外介面。

什麼是繼承?

物件的繼承代表了一種「is-a」的關係,如果兩個物件a和b,可以描述為「b是a」,則表明b可以繼承a。     

c#中提供了類的繼承機制,只支援單繼承,不能同時繼承多個類。被繼承的類叫基類也稱父類,繼承其成員的類叫派生類也稱子類。       

乙個類從另乙個類派生出來時,派生類繼承了基類的特性。除了建構函式和析構函式外,派生類隱式地繼承了直接基類的所有成員。子類可以從基類中繼承的成員有方法、域、屬性、事件、索引指示器。建構函式雖然不能被繼承的,但是子類依然可以使用base關鍵字進行呼叫。    

子類除了從基類繼承的屬性和功能外,還可以有屬於自己的特性。子類還可以通過方法重寫的方式來實現父類的功能。

127

}8914

}15static

void main(string

args)

16

view code

什麼是多型?

多型就是不同的類的例項,執行同一操作,最後產生不同的執行結果。就像兩個蘋果,雖然都屬於蘋果類,但有大小和形狀不同,大小和形狀都屬於蘋果的屬性,這樣就產生了多型性。

多型性分為編譯時多型和執行時多型。

編譯時的多型性是通過過載來實現的。方法過載是指乙個方法名稱具有多個數量或型別的引數的函式,傳遞的引數也不同,實現不同的功能。

執行時的多型性是指程式執行過程中,根據實際情況來實現不同操作。在c#中,執行時的多型性通過虛成員實現。

積累中需要重寫的函式使用關鍵字virtual定義,該關鍵字放在返回型別前面。而派生類如果要重寫虛函式,則要使用關鍵字override,該關鍵字放在返回型別前面。

例如:通過過載實現編譯時多型

1

class29

public

10個蘋果!"12

}13public

14個蘋果!"16

}17}18

19static

void main(string

args)

20

view code

例如:通過重寫實現編譯時多型

1

class27

}8914

}15static

void main(string

args)

16

view code

《大話設計模式》學習心得系列(一)

物件導向基礎 1 本博文意在鞏固基礎知識,高手請繞過。什麼事物件?物件是存在的具體實體,具有明確定以的狀態和行為。什麼是類?類是具有相同的屬性和功能的物件的抽象的集合。什麼是例項化?實力就是類的乙個真實物件,例項化就是建立物件的過程,使用new關鍵字建立。如下 1 static void main ...

大話設計模式學習心得 物件導向基礎

從圖書館借了本大話設計模式,寒假好好啃啃。書的封面很像一本小兒漫畫書。呵呵。附錄a 物件導向基礎 類 具有相同屬性和功能的物件的抽象集合。相當於乙個模板。物件 是乙個自包含的實體。萬物皆物件。例項 乙個真實的物件。例項化 建立物件的過程。構造方法 對類進行初始化,與類同名,沒有返回值,在new的時候...

設計模式學習心得

物件導向的設計原則 1.單一職責原則 srp 每個物件應該只有一種責任。可以達到公用的方法,可以放入乙個類中,有差異但相似的方法,可以根據差異單獨實現。例如 角色 戰士,法師 攻擊 物理,法術 防禦。2.開閉原則 ocp 設計程式時對功能擴充套件開放,對修改關閉。進行功能擴充套件時不需要修改源 更利...