面向過程:
首先,需要分析出解決問題所需要的步驟
然後,用函式把這些步驟一步一步的實現
使用的時候乙個乙個一次呼叫(逐行執行**)
物件導向:
把構成問題事務分解成各個物件,建立物件的目的為了完成乙個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。
物件是指實體的例項,該實體包含了特定的屬性資料和對這些資料進行操作的函式。
對於類,我們可以把它看作是一組具有相同資料結構和相同操作的物件的集合。每個物件都是該類的乙個例項。
物件導向包含了三大特性:繼承、封裝、多型。
欄位和屬性的區別:
字段主要是在類的內部使用,儲存資料
屬性是類提供給外部呼叫時用的,物件的屬性可以用來設定或者讀取乙個欄位的值。屬性可以通過get set
訪問器對字段提供安全、有效範圍等保護作用。屬性相對與字段來說,具有更大的靈活性和可擴充套件性。
為了更加符合面向的程式設計思想,我們在專案中,通常使用自定義的屬性來訪問字段。屬性本身是不儲存資料的(屬性當中的set{}
為空的情況下,即使對該屬性執行任意操作,都不會改變該屬性的返回值。),資料都儲存在字段當中。
對於**的重用歸結為兩類:一是繼承(「is-a
」的關係)二是包含委託模型(「
has-a
」的關係)
一、繼承 簡單來說就是乙個物件可以使用另乙個物件的屬性和方法。
public class bwm :car
上述例項:類bwm繼承自類car,car是bwm的基類(或者稱為父類),bwm是car的派生類(或者稱為子類)c#當中在兩個類之間使用「:」修飾符來建立繼承的關係。
bwm物件通過繼承關係,bwm的物件可以訪問car類當中的每乙個公共成員。(私有成員只能被定義它的類訪問)
我們需要注意的是:派生類從未繼承父類的建構函式。
c#當中只允許乙個類擁有乙個直接的基類。object類是所有的類的基類。
如果乙個類使用了sealed關鍵字,則該類不能被繼承。
我們建立乙個子類的物件,程式執行前會自動的呼叫子類當中的建構函式,但是呼叫該建構函式之前會先呼叫父類當中的建構函式,預設呼叫父類當中的預設建構函式,為了優化派生類的建立,可以減少繼承的初始化成員的呼叫次數。我們可以使用base關鍵字來指定呼叫的父類中的建構函式
二、封裝
封裝,實現資料的保護,方便使用(使用者不必去關心使用部分內部的結構,只要達到自己的效果就可以了),在比較理想的狀態下,物件的狀態資料應使用private或者procted關鍵字來指定訪問範圍,依次來阻止外部的直接訪問或改變操作。
封裝的核心:物件內部的資料不應該直接從物件的例項進行訪問,而是需要通過使用訪問方法也就是我們通常說的set/get(訪問器)
三、多型
主要是依賴與抽象而不不依賴具體,增加靈活性,常見的多型體現在介面和抽象類
黑馬程式設計師 物件導向學習
1.類 物件。人 是類,張三 是 人 這個類的物件。類是抽象的,物件是具體的。按鈕就是類,某個按鈕就是物件。物件可以叫做類的例項 instance 類就像int,物件就像10。欄位field 和某個物件相關的變數 字段就是類的狀態。人這個類有姓名 年齡 身高等字段。類不佔記憶體,物件才佔記憶體。2....
黑馬程式設計師 C 物件導向總結
windows phone7手機開發 net培訓 期待與您交流!1 物件導向不是取代面向過程的 2 類和物件的關係 類是抽象概念,而物件是具體的,比如 人類 就是乙個類,而 小明 就是物件,是乙個真實存在的人。按鈕是乙個類,某個按鈕就是乙個物件 string是乙個類,abc 就是乙個物件。類不佔記憶...
黑馬程式設計師 物件導向
物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...