面向?qū)ο缶幊?/h2>

1.理解類和對象的概念

類:class 對象: object
類是對象的抽象,對象是類的實例;
例如:汽車是對象,大小顏色是類; 衣服是對象,尺寸規(guī)格是類。

2.面向?qū)ο蟪绦蛟O(shè)計中的概念主要包括:對象、類、數(shù)據(jù)抽象、繼承、動態(tài)綁定、數(shù)據(jù)封裝、消息傳遞。通過這些概念面向?qū)ο蟮乃枷氲玫搅司唧w的體現(xiàn)。

1)對象(Object) 可以對其做事情的一些東西。一個對象有狀態(tài)、行為和標(biāo)識三種屬性。

2)類(class) 一個共享相同結(jié)構(gòu)和行為的對象的集合。

類(Class)定義了一件事物的抽象特點。通常來說,類定義了事物的屬性和它可以做到的(它的行為)。舉例來說,“狗”這個類會包含狗的一切基礎(chǔ)特征,例如它的孕育、毛皮顏色和吠叫的能力。類可以為程序提供模版和結(jié)構(gòu)。一個類的方法和屬性被稱為“成員”。

3)封裝(encapsulation): 第一層意思:將數(shù)據(jù)和操作捆綁在一起,創(chuàng)造出一個新的類型的過程。

第二層意思:將[接口]與實現(xiàn)分離的過程。

4)繼承 類之間的關(guān)系,在這種關(guān)系中,一個類共享了一個或多個其他類定義的結(jié)構(gòu)和行為。繼承描述了類之間的“是一種”關(guān)系。子類可以對基類的行為進行擴展、覆蓋、重定義。

5)組合 既是類之間的關(guān)系也是對象之間的關(guān)系。在這種關(guān)系中一個對象或者類包含了其他的對象和類。

組合描述了“有”關(guān)系。

6)多態(tài) 類型理論中的一個概念,一個名稱可以表示很多不同類的對象,這些類和一個共同超類有關(guān)。因此,這個名稱表示的任何對象可以以不同的方式響應(yīng)一些共同的操作集合。

7)動態(tài)綁定 也稱動態(tài)類型,指的是一個對象或者表達式的類型直到運行時才確定。通常由編譯器插入特殊代碼來實現(xiàn)。與之對立的是靜態(tài)類型。

8)靜態(tài)綁定 也稱靜態(tài)類型,指的是一個對象或者表達式的類型在編譯時確定。

9)消息傳遞 指的是一個對象調(diào)用了另一個對象的方法(或者稱為成員函數(shù))。

3.特征

面向?qū)ο笾饕卣鳎?/p>

封裝性:封裝是一種技術(shù),它體現(xiàn)于類的說明,是對象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個整體,以實現(xiàn)獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實現(xiàn)加工能力的算法)對用戶是隱蔽的。封裝的目的在于把對象的設(shè)計者和對象的使用者分開,使用者不必知曉行為實現(xiàn)的細節(jié),只須用設(shè)計者提供的消息來訪問該對象。

繼承性:繼承性是子類自動共享父類之間數(shù)據(jù)和方法的機制。它由類的派生功能體現(xiàn)。一個類直接繼承其它類的全部描述,同時可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類只有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類對象,方法就會出現(xiàn)大量重復(fù)。繼承不僅支持系統(tǒng)的可重用性,而且還促進系統(tǒng)的可擴充性。

多態(tài)性:對象根據(jù)所接收的消息而做出動作。同一消息為不同的對象接受時可產(chǎn)生完全不同的行動,這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個通用的信息,而將所有的實現(xiàn)細節(jié)都留給接受消息的對象自行決定,如是,同一消息即可調(diào)用不同的方法。例如:Print消息被發(fā)送給一圖或表時調(diào)用的打印方法與將同樣的Print消息發(fā)送給一正文文件而調(diào)用的打印方法會完全不同。多態(tài)性的實現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應(yīng)。在OOPL中可通過在派生類中重定義基類函數(shù)來實現(xiàn)多態(tài)性。

綜上可知,在面對對象方法中,對象和傳遞消息分別表現(xiàn)事物及事物間相互聯(lián)系的概念。類和繼承是是適應(yīng)人們一般思維方式的描述范式。方法是允許作用于該類對象上的各種操作。這種對象、類、消息和方法的程序設(shè)計范式的基本點在于對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現(xiàn)分開,通過繼承能體現(xiàn)類與類之間的關(guān)系,以及由此帶來的動態(tài)聯(lián)編和實體的多態(tài)性,從而構(gòu)成了面向?qū)ο蟮幕咎卣鳌?/p>

面向?qū)ο笤O(shè)計是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動的系統(tǒng)方法,是建立在“對象”概念基礎(chǔ)上的方法學(xué)。對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接對應(yīng)關(guān)系,一個對象類定義了具有相似性質(zhì)的一組對象。而每繼承性是對具有層次關(guān)系的類的屬性和操作進行共享的一種方式。所謂面向?qū)ο缶褪腔趯ο蟾拍?,以對象為中心,以類和繼承為構(gòu)造機制,來認識、理解、刻畫客觀世界和設(shè)計、構(gòu)建相應(yīng)的軟件系統(tǒng)。。按照Bjarne STroustRUP的說法,面向?qū)ο蟮木幊谭妒剑?/p>

l 決定你要的類;

2 給每個類提供完整的一組操作;

3 明確地使用繼承來表現(xiàn)共同點。

由這個定義,我們可以看出:面向?qū)ο笤O(shè)計就是“根據(jù)需求決定所需的類、類的操作以及類之間關(guān)聯(lián)的過程”。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容