-------
windows phone7手機開發
、.net培訓
、期待與您交流! -------
1、物件導向不是取代面向過程的
2、類和物件的關係:
類是抽象概念,而物件是具體的,比如」人類「就是乙個類,而」小明「就是物件,是乙個真實存在的人。按鈕是乙個類,某個按鈕就是乙個物件;string是乙個類,」abc「就是乙個物件。類不佔記憶體,物件才佔記憶體,類中有一些屬性或字段,用於描述物件的特徵。
3、方法:
方法就是類能夠執行的動作,比如人類就有吃飯方法,說話方法。
4、類的繼承
類之間可以有繼承關係,子類(派生類)從父類(基類)繼承所有的屬性、欄位和方法,如電腦類可以從電器類繼承,這樣電器類擁有的屬性和方法,比如重量,耗電量,開啟,關閉,電腦類都自動繼承擁有了,這樣電腦類只需定義cpu型號,記憶體大小等自己獨有的方法或屬性就可以了。
5、物件導向的3個特性:繼承、封裝、多型
6、成員的訪問級別:
字段、方法、屬性都可以叫做類的成員,他們都需要定義訪問級別,控制訪問級別的作用在於控制成員在哪些地方可以被訪問,從而達到物件導向中封裝的目的。
幾個常見的訪問級別:
public: 本命名空間下所有地方都可以訪問
private: 只能在本類中被訪問
protected: 可以在本類和子類中被訪問
internal:只能在本程式集中被訪問
7、屬性
(1)通常情況下,屬性的開頭字母大寫,而對應欄位的開頭字母小寫。
語法(例):
class person
set
} }
上述**中,如刪除get或set方法,即可成為只寫或唯讀屬性,get,set都可以設定訪問級別。
(2)在沒有特殊邏輯**的情況下,上述的**可簡寫成public string name
8、建構函式
語法(例):
class person
private string name;
public string name
} }
(1)建構函式的函式名與類名相同,沒有返回值,連void都不需要寫,建構函式的作用是強制使用者在宣告例項的時候傳入引數,如上**中,使用者在定義乙個新的person例項時必須輸入例項的姓名引數,而由於姓名屬性是唯讀屬性,因此在傳入引數完成之後,例項的姓名是無法改變的。
(2)在定義類時,即使類中沒有建構函式,系統也會自動幫我們生成乙個沒有引數的建構函式,而當我們自己定義了建構函式之後,這個無參的建構函式就不再存在了。
(3)建構函式可以有過載,如:
class person
public person(int age)
private string name;
public string name
} private int age;
public int age
}如上,person類有了兩個建構函式,即只有乙個name引數的建構函式和有兩個引數name,age的建構函式,這兩個建構函式之間的關係就叫做過載。
子類呼叫父類的建構函式:
1、建構函式不繼承,派生類會自動呼叫基類建構函式。
2、若類內沒有定義建構函式,系統會自動隱式生成乙個不帶引數的建構函式,比如定義乙個類:
public class a
可以理解為它已經存在乙個如下的建構函式
public class a
} 3、派生類建構函式自動呼叫基類的不帶引數的建構函式,注意下面的格式
public class b:a
}相當於
public class b:a
}3、基類中帶引數的建構函式必須顯式呼叫,比如:
public class a
}public class b:a}
4、如果基類中有引數為0個的建構函式,那麼派生類中可以不寫建構函式,預設呼叫基類中無參的建構函式
public class a
publica(string str) }
public class b:a
9、多型:多型就是物件可以表現多個型別的能力
(1)重寫父類中的方法:
當子類和父類的方法重名時,會報綠線警告,去掉綠線的方法:
①在子類方法的訪問修飾符(public)後加上new
②在父類方法的訪問修飾符後加上virtual,即定義為虛方法,在子類中重寫這個方法時,在訪問修飾符後加上override
在重寫虛方法時要注意:
方法不能用static修飾
子類中方法重寫時必須與父類中方法的簽名(即返回值和引數)一致
virtual不能與private一起使用
常見的虛方法:
equal()
tostring()
gethashcode()
(2)抽象類和抽象方法:
①如果在乙個類中有乙個方法的訪問修飾符後加了abstract,那麼這個方法就叫做抽象方法,相應的類名前也要加上abstract,這個類就成了抽象類,注意抽象方法沒有方法體,抽象類不能被例項化。
②如果乙個類繼承了抽象類,那麼在這個子類中必須重寫父類中的抽象方法,實現抽象方法的方法體。
10、介面
語法:[訪問修飾符] inte***ce 介面名
(1)定義:inte***ce關鍵字,介面中可以有屬性、方法(不寫方法體)。
(2)介面的名稱通常以i開頭,如ilist
(3)如果乙個類繼承了其他類同時又實現了介面, 那麼父類寫在前面,介面寫在後面,如:classstudent:person,icomparable
乙個類只能繼承自乙個類,但可以有多個介面。
(4)介面和類的異同
不同點:
介面不能直接例項化;
介面中不包含方法的實現;
介面可以多繼承,類只能單繼承;
相同點:
介面、類、結構都可以實現多個介面
介面類似於抽象基類,任何繼承(實現)介面的非抽象型別都必須實現介面的所有抽象成員
介面和類都可以包含事件,索引器,方法和屬性
類不支援多重繼承,而介面支援。類對介面叫實現,不叫繼承,類好比是爹,介面是能力,乙個人可以有多種能力但不會有多個爹。
----------------------
asp.net+unity開發
、.net培訓
、期待與您交流! ----------------------詳細請檢視:
www.itheima.com
黑馬程式設計師 物件導向
物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...
黑馬程式設計師 物件導向
物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。類的訪問修飾符有public和final。而成員的修飾符有public private protected static 成員變數和區域...
黑馬程式設計師 物件導向的學習總結
面向過程 首先,需要分析出解決問題所需要的步驟 然後,用函式把這些步驟一步一步的實現 使用的時候乙個乙個一次呼叫 逐行執行 物件導向 把構成問題事務分解成各個物件,建立物件的目的為了完成乙個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。物件是指實體的例項,該實體包含了特定的屬性資料和對這些...