官术网_书友最值得收藏!

2.1.3 面向?qū)ο蟮某绦蛟O(shè)計(jì)

對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜母拍睢?duì)象可以用來(lái)表示客觀(guān)世界中的任何實(shí)體,也就是說(shuō),應(yīng)用領(lǐng)域中有意義的、與所要解決的問(wèn)題有關(guān)系的任何事物都可以作為對(duì)象,它既可以是具體的物理實(shí)體的抽象,也可以是人為的概念,或者是任何有明確邊界意義的東西。總之,對(duì)象是對(duì)問(wèn)題域中某個(gè)實(shí)體的抽象,設(shè)立某個(gè)對(duì)象就反映軟件系統(tǒng)保存有關(guān)它的信息并具有與它進(jìn)行交互的能力。

面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中涉及的對(duì)象是系統(tǒng)中用來(lái)描述客觀(guān)事物的一個(gè)實(shí)體,是構(gòu)成系統(tǒng)的一個(gè)基本單位,它由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。

對(duì)象可以做的操作表示它的動(dòng)態(tài)行為,在面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計(jì)中,通常把對(duì)象的操作也稱(chēng)為方法或服務(wù)。

屬性即對(duì)象所包含的信息,它在設(shè)計(jì)對(duì)象時(shí)確定,一般只能通過(guò)對(duì)象的操作來(lái)改變。

操作描述了對(duì)象執(zhí)行的功能,若通過(guò)消息傳遞,還可以為其他對(duì)象使用。操作過(guò)程對(duì)外是封閉的,即用戶(hù)只能看到這一操作實(shí)施后的結(jié)果。這相當(dāng)于事先已經(jīng)設(shè)計(jì)好的各種過(guò)程,用戶(hù)只要調(diào)用就可以了,而不必關(guān)心這一過(guò)程是如何編寫(xiě)的。事實(shí)上,這個(gè)過(guò)程已經(jīng)封裝在對(duì)象中,用戶(hù)也看不到。這一特性即是對(duì)象的封裝性。

1.面向?qū)ο筇攸c(diǎn)

面向?qū)ο缶哂蟹庋b性、繼承性和多態(tài)性。

(1)封裝性

封裝是一種信息隱蔽技術(shù),它體現(xiàn)于類(lèi)的說(shuō)明,是對(duì)象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶(hù)只能見(jiàn)到對(duì)象的外特性(對(duì)象能接收哪些消息,具有哪些處理能力),而對(duì)象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法)對(duì)用戶(hù)是隱蔽的。封裝的目的在于把對(duì)象的設(shè)計(jì)者和對(duì)象的使用者分開(kāi),使用者不必知曉行為實(shí)現(xiàn)的細(xì)節(jié),只需用設(shè)計(jì)者提供的消息來(lái)訪(fǎng)問(wèn)該對(duì)象即可。

(2)繼承性

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

(3)多態(tài)性

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

2.類(lèi)和實(shí)例

類(lèi)是對(duì)象的模板,即類(lèi)是對(duì)一組有相同數(shù)據(jù)和相同操作的對(duì)象的定義。一個(gè)類(lèi)所包含的方法和數(shù)據(jù)可描述一組對(duì)象的共同屬性和行為,將屬性、操作相似的對(duì)象歸為類(lèi),也就是說(shuō),類(lèi)是具有共同屬性、共同方法的對(duì)象的集合。所以,類(lèi)是對(duì)象的抽象,它描述了屬于該對(duì)象類(lèi)型的所有對(duì)象的性質(zhì),而一個(gè)對(duì)象則是其對(duì)應(yīng)類(lèi)的一個(gè)實(shí)例。

需要注意的是,當(dāng)使用“對(duì)象”這個(gè)術(shù)語(yǔ)時(shí),既可以指一個(gè)具體的對(duì)象,也可以泛指一般的對(duì)象。但是,當(dāng)使用“實(shí)例”這個(gè)術(shù)語(yǔ)時(shí),必然是指一個(gè)具體的對(duì)象。

由類(lèi)的定義可知,類(lèi)是關(guān)于對(duì)象性質(zhì)的描述,它同對(duì)象一樣,包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。

在UML語(yǔ)言中,類(lèi)的表示如圖2-4所示。

圖2-4 UML語(yǔ)言中的類(lèi)

3.消息

面向?qū)ο蟮氖澜缡峭ㄟ^(guò)對(duì)象與對(duì)象間彼此的相互合作來(lái)推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱(chēng)為“消息”。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它是對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流的控制流。消息的使用類(lèi)似于函數(shù)調(diào)用,消息中指定了某一個(gè)實(shí)例、一個(gè)操作名和一個(gè)參數(shù)表(可為空)。接收消息的實(shí)例執(zhí)行消息中指定的操作,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來(lái)。在消息傳遞過(guò)程中,由發(fā)送消息的對(duì)象(發(fā)送對(duì)象)的觸發(fā)操作產(chǎn)生輸出結(jié)果,作為消息傳送至接收消息的對(duì)象(接收對(duì)象),引發(fā)接收消息對(duì)象的一系列的操作。所傳送的消息實(shí)質(zhì)上是接收對(duì)象所具有的操作/方法名稱(chēng),有時(shí)還包括相應(yīng)參數(shù)。

通常,一個(gè)消息由以下3部分組成:

1)接收消息的對(duì)象的名稱(chēng)。

2)消息標(biāo)識(shí)符(也稱(chēng)為消息名)。

3)0個(gè)或多個(gè)參數(shù)。

推薦閱讀
  1. 全國(guó)計(jì)算機(jī)等級(jí)考試歷年真題與機(jī)考題庫(kù):二級(jí)MS Office高級(jí)應(yīng)用
  2. 全國(guó)職稱(chēng)計(jì)算機(jī)考試標(biāo)準(zhǔn)教材與專(zhuān)用題庫(kù):Excel 2007中文電子表格
  3. 全國(guó)計(jì)算機(jī)等級(jí)考試歷年真題與機(jī)考題庫(kù):二級(jí)MS Office高級(jí)應(yīng)用
  4. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《四級(jí)軟件工程》【教材精講+真題解析】講義與視頻課程【26小時(shí)高清視頻】
  5. 全國(guó)計(jì)算機(jī)等級(jí)考試一本通:二級(jí)Access
  6. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《四級(jí)軟件工程》復(fù)習(xí)全書(shū)【核心講義+歷年真題詳解】
  7. 全國(guó)計(jì)算機(jī)等級(jí)考試全真模擬考場(chǎng):二級(jí)C語(yǔ)言
  8. 全國(guó)職稱(chēng)計(jì)算機(jī)考試標(biāo)準(zhǔn)教材與專(zhuān)用題庫(kù):PowerPoint 2007中文演示文稿
  9. 5天通過(guò)職稱(chēng)計(jì)算機(jī)考試(考點(diǎn)視頻串講+全真模擬):PowerPoint 2003中文演示文稿(第2版) (全國(guó)專(zhuān)業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試指導(dǎo)叢書(shū))
  10. 2014年全國(guó)計(jì)算機(jī)等級(jí)考試3年真題精解與過(guò)關(guān)全真訓(xùn)練題:二級(jí)Visual FoxPro數(shù)據(jù)庫(kù)程序設(shè)計(jì)
  11. 全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》【教材精講+真題解析】講義與視頻課程【45小時(shí)高清視頻】
  12. 全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》專(zhuān)用教材【考綱分析+考點(diǎn)精講+真題演練+強(qiáng)化習(xí)題】
  13. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)Visual Basic語(yǔ)言程序設(shè)計(jì)》歷年真題與模擬試題詳解
  14. 全國(guó)計(jì)算機(jī)等級(jí)考試上機(jī)專(zhuān)用題庫(kù)與筆試模擬考場(chǎng):二級(jí)Visual Basic
  15. 全國(guó)職稱(chēng)計(jì)算機(jī)考試講義·真題·預(yù)測(cè)三合一:PowerPoint 2003中文演示文稿
主站蜘蛛池模板: 深州市| 奎屯市| 苏尼特右旗| 庆城县| 六盘水市| 柳州市| 固始县| 寿阳县| 临夏县| 苍南县| 临桂县| 甘谷县| 古田县| 长宁县| 巴林右旗| 离岛区| 大安市| 开平市| 门源| 无锡市| 莱州市| 绥德县| 叶城县| 浮梁县| 德化县| 诏安县| 武义县| 静安区| 桂阳县| 开平市| 翼城县| 泗阳县| 西乌珠穆沁旗| 新密市| 茶陵县| 南丹县| 宜州市| 锡林郭勒盟| 体育| 彝良县| 姚安县|