黑馬程式設計師 C 物件導向總結

2021-06-22 18:52:08 字數 3268 閱讀 2969

-------

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 成員變數和區域...

黑馬程式設計師 物件導向的學習總結

面向過程 首先,需要分析出解決問題所需要的步驟 然後,用函式把這些步驟一步一步的實現 使用的時候乙個乙個一次呼叫 逐行執行 物件導向 把構成問題事務分解成各個物件,建立物件的目的為了完成乙個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。物件是指實體的例項,該實體包含了特定的屬性資料和對這些...