物件導向基礎(2)
本博文意在鞏固基礎知識,高手請繞過。
物件導向的三大特徵:封裝、繼承、多型
什麼是封裝?
每個物件都包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來完成自己的操作。這樣方法和屬性包含在類中,通過類的例項來實現。
類將資料和運算元據的方法結合成乙個單位。在設計類時,不希望直接訪問類中的資料,而是希望通過方法來訪問資料。如此就可以達到封裝資料的目的,方便以後維護、公升級,也可以在運算元據時多一層判斷,提高安全性。
使用封裝可以將資料隱藏起來,形成乙個封閉空間。在編寫程式時,對類的成員使用不同的訪問修飾符,從而定義它們的訪問級別。
封裝的優點:
1.減少耦合;
2.類內部的實現可以自由的修改;
3.類具有清晰的對外介面。
什麼是繼承?
物件的繼承代表了一種「is-a」的關係,如果兩個物件a和b,可以描述為「b是a」,則表明b可以繼承a。
c#中提供了類的繼承機制,只支援單繼承,不能同時繼承多個類。被繼承的類叫基類也稱父類,繼承其成員的類叫派生類也稱子類。
乙個類從另乙個類派生出來時,派生類繼承了基類的特性。除了建構函式和析構函式外,派生類隱式地繼承了直接基類的所有成員。子類可以從基類中繼承的成員有方法、域、屬性、事件、索引指示器。建構函式雖然不能被繼承的,但是子類依然可以使用base關鍵字進行呼叫。
子類除了從基類繼承的屬性和功能外,還可以有屬於自己的特性。子類還可以通過方法重寫的方式來實現父類的功能。
127view code}8914
}15static
void main(string
args)
16
什麼是多型?
多型就是不同的類的例項,執行同一操作,最後產生不同的執行結果。就像兩個蘋果,雖然都屬於蘋果類,但有大小和形狀不同,大小和形狀都屬於蘋果的屬性,這樣就產生了多型性。
多型性分為編譯時多型和執行時多型。
編譯時的多型性是通過過載來實現的。方法過載是指乙個方法名稱具有多個數量或型別的引數的函式,傳遞的引數也不同,實現不同的功能。
執行時的多型性是指程式執行過程中,根據實際情況來實現不同操作。在c#中,執行時的多型性通過虛成員實現。
積累中需要重寫的函式使用關鍵字virtual定義,該關鍵字放在返回型別前面。而派生類如果要重寫虛函式,則要使用關鍵字override,該關鍵字放在返回型別前面。
例如:通過過載實現編譯時多型
1view codeclass29
public
10個蘋果!"12
}13public
14個蘋果!"16
}17}18
19static
void main(string
args)
20
例如:通過重寫實現編譯時多型
1view codeclass27
}8914
}15static
void main(string
args)
16
《大話設計模式》學習心得系列(一)
物件導向基礎 1 本博文意在鞏固基礎知識,高手請繞過。什麼事物件?物件是存在的具體實體,具有明確定以的狀態和行為。什麼是類?類是具有相同的屬性和功能的物件的抽象的集合。什麼是例項化?實力就是類的乙個真實物件,例項化就是建立物件的過程,使用new關鍵字建立。如下 1 static void main ...
大話設計模式學習心得 物件導向基礎
從圖書館借了本大話設計模式,寒假好好啃啃。書的封面很像一本小兒漫畫書。呵呵。附錄a 物件導向基礎 類 具有相同屬性和功能的物件的抽象集合。相當於乙個模板。物件 是乙個自包含的實體。萬物皆物件。例項 乙個真實的物件。例項化 建立物件的過程。構造方法 對類進行初始化,與類同名,沒有返回值,在new的時候...
設計模式學習心得
物件導向的設計原則 1.單一職責原則 srp 每個物件應該只有一種責任。可以達到公用的方法,可以放入乙個類中,有差異但相似的方法,可以根據差異單獨實現。例如 角色 戰士,法師 攻擊 物理,法術 防禦。2.開閉原則 ocp 設計程式時對功能擴充套件開放,對修改關閉。進行功能擴充套件時不需要修改源 更利...