第01講面向?qū)ο蟮能浖_(kāi)發(fā)ppt課件_第1頁(yè)
第01講面向?qū)ο蟮能浖_(kāi)發(fā)ppt課件_第2頁(yè)
第01講面向?qū)ο蟮能浖_(kāi)發(fā)ppt課件_第3頁(yè)
第01講面向?qū)ο蟮能浖_(kāi)發(fā)ppt課件_第4頁(yè)
第01講面向?qū)ο蟮能浖_(kāi)發(fā)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 2 頁(yè)本本 章章 要要 點(diǎn)點(diǎn)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 4 頁(yè)1、回顧結(jié)構(gòu)化方法l程序設(shè)計(jì)語(yǔ)言只要順序、選擇和重復(fù)三種程序設(shè)計(jì)語(yǔ)言只要順序、選擇和重復(fù)三種形式的控制結(jié)構(gòu)就足以表達(dá)出各種其他形形式的控制結(jié)構(gòu)就足以表達(dá)出各種其他形式的結(jié)構(gòu)。式的結(jié)構(gòu)。l采用過(guò)程抽象的方式,把軟件視為處理流,采用過(guò)程抽象的方式,把軟件視為處理流,并定義成由一系列步驟構(gòu)成的算法。每一并定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有預(yù)定輸入和特定輸出的一個(gè)步驟都是帶有預(yù)定輸入和特定輸出的一個(gè)過(guò)程,把

2、這些步驟串聯(lián)在一起可產(chǎn)生合理過(guò)程,把這些步驟串聯(lián)在一起可產(chǎn)生合理的穩(wěn)定的貫通于整個(gè)程序的控制流,最終的穩(wěn)定的貫通于整個(gè)程序的控制流,最終產(chǎn)生一個(gè)簡(jiǎn)單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu)。產(chǎn)生一個(gè)簡(jiǎn)單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu)。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 5 頁(yè)1、回顧結(jié)構(gòu)化方法l數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求開(kāi)發(fā),它貫穿于過(guò)程,提供過(guò)程所要求操開(kāi)發(fā),它貫穿于過(guò)程,提供過(guò)程所要求操作的信息。作的信息。l系統(tǒng)的狀態(tài)是一組全局變量,這組全局變系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個(gè)過(guò)程傳送量保存狀態(tài)的值,把它們從一個(gè)過(guò)程傳送到另一個(gè)過(guò)程

3、。到另一個(gè)過(guò)程。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 6 頁(yè)1、回顧結(jié)構(gòu)化方法l缺陷:缺陷:l1復(fù)用困難復(fù)用困難l2牽一發(fā)而動(dòng)全身牽一發(fā)而動(dòng)全身l3為了適應(yīng)變化,要精心設(shè)計(jì)函數(shù)接口,為了適應(yīng)變化,要精心設(shè)計(jì)函數(shù)接口,導(dǎo)致函數(shù)接口的日益復(fù)雜導(dǎo)致函數(shù)接口的日益復(fù)雜面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 7 頁(yè)2、面向?qū)ο蠓椒ǖ奶岢鰈面向?qū)ο蠓椒ò褑?wèn)題論域中的主要實(shí)體做面向?qū)ο蠓椒ò褑?wèn)題論域中的主要實(shí)體做為系統(tǒng)開(kāi)發(fā)的起點(diǎn),主要考慮對(duì)象的行為為系統(tǒng)開(kāi)發(fā)的起點(diǎn),主要考慮對(duì)象的行為而不是必須執(zhí)行的一系列動(dòng)作。而不是必須執(zhí)行的一系列動(dòng)作。l在面向?qū)ο蠓椒ㄖ校瑢?duì)象是數(shù)據(jù)抽象與過(guò)在面向?qū)ο蠓椒ㄖ校瑢?duì)象是數(shù)據(jù)抽

4、象與過(guò)程抽象的綜合。程抽象的綜合。l系統(tǒng)狀態(tài)保存在各數(shù)據(jù)抽象所定義的數(shù)據(jù)系統(tǒng)狀態(tài)保存在各數(shù)據(jù)抽象所定義的數(shù)據(jù)存儲(chǔ)中。存儲(chǔ)中。l控制流包含在各個(gè)數(shù)據(jù)抽象中的操作內(nèi),控制流包含在各個(gè)數(shù)據(jù)抽象中的操作內(nèi),算法被分布到各種實(shí)體中。算法被分布到各種實(shí)體中。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 8 頁(yè)2、面向?qū)ο蠓椒ǖ奶岢鰈在使用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)的系統(tǒng)之中,系在使用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)的系統(tǒng)之中,系統(tǒng)結(jié)構(gòu)基于對(duì)象間的交互。系統(tǒng)中某一部統(tǒng)結(jié)構(gòu)基于對(duì)象間的交互。系統(tǒng)中某一部分的改變僅僅產(chǎn)生局部影響。分的改變僅僅產(chǎn)生局部影響。l其組成部分如下:其組成部分如下:l面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?OOA)l面向?qū)ο笤O(shè)計(jì)面向

5、對(duì)象設(shè)計(jì)(OOD) l面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP) l即:即:OOSD = OOA + OOD + OOP。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 9 頁(yè)3、面向?qū)ο蠓椒ǖ幕舅枷雔盡可能模擬人類習(xí)慣的思維方式,使開(kāi)發(fā)盡可能模擬人類習(xí)慣的思維方式,使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類認(rèn)識(shí)世軟件的方法與過(guò)程盡可能接近人類認(rèn)識(shí)世界解決問(wèn)題的方法與過(guò)程,也就是使描述界解決問(wèn)題的方法與過(guò)程,也就是使描述問(wèn)題的問(wèn)題空間即問(wèn)題域與實(shí)現(xiàn)解法問(wèn)題的問(wèn)題空間即問(wèn)題域與實(shí)現(xiàn)解法的解空間即求解域在結(jié)構(gòu)上盡可能一的解空間即求解域在結(jié)構(gòu)上盡可能一致。致。天下烏鴉天下烏鴉一般黑一般黑歸納歸納演繹演繹面向?qū)ο?/p>

6、的程序設(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 10 頁(yè)l人類對(duì)客觀事物的認(rèn)知過(guò)程人類對(duì)客觀事物的認(rèn)知過(guò)程l從一般到特殊的演繹過(guò)程從一般到特殊的演繹過(guò)程l從特殊到一般的歸納方法從特殊到一般的歸納方法3、面向?qū)ο蠓椒ǖ幕舅枷脒\(yùn)輸工具運(yùn)輸工具飛機(jī)飛機(jī)汽車汽車輪船輪船火車火車水果水果蘋(píng)果蘋(píng)果香蕉香蕉梨梨籠統(tǒng)籠統(tǒng)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 11 頁(yè)3、面向?qū)ο蠓椒ǖ幕舅枷雔面向?qū)ο蠓椒ㄌ峁┝顺橄蠛蜌w納的機(jī)制面向?qū)ο蠓椒ㄌ峁┝顺橄蠛蜌w納的機(jī)制抽象的客觀概念抽象的客觀概念概念:學(xué)生概念:學(xué)生抽象的數(shù)據(jù)類型抽象的數(shù)據(jù)類型類:學(xué)生類:學(xué)生實(shí)例化的對(duì)象實(shí)例化的對(duì)象對(duì)象:對(duì)象:Jane具體的一組相似客觀事物具體的

7、一組相似客觀事物實(shí)體:實(shí)體:Jane、Smith等等表示表示籠統(tǒng)籠統(tǒng)實(shí)例化實(shí)例化模擬模擬面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 12 頁(yè)3、面向?qū)ο蠓椒ǖ幕舅枷雱澐謩澐謱?fù)雜問(wèn)題將復(fù)雜問(wèn)題復(fù)雜對(duì)象復(fù)雜對(duì)象劃分為一系劃分為一系列簡(jiǎn)單的組列簡(jiǎn)單的組成部分簡(jiǎn)成部分簡(jiǎn)單對(duì)象)單對(duì)象) 分類分類按照對(duì)象間的各種相按照對(duì)象間的各種相似性將對(duì)象分類似性將對(duì)象分類認(rèn)識(shí)各類對(duì)象自認(rèn)識(shí)各類對(duì)象自身屬性及行為身屬性及行為認(rèn)識(shí)對(duì)象及類之認(rèn)識(shí)對(duì)象及類之間關(guān)系間關(guān)系全部事物的全部事物的完整認(rèn)識(shí)完整認(rèn)識(shí)符合人類認(rèn)知規(guī)律的軟件開(kāi)發(fā)過(guò)程面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 14 頁(yè)1、什

8、么是對(duì)象?l在應(yīng)用領(lǐng)域中有意義的、與所要解決的問(wèn)在應(yīng)用領(lǐng)域中有意義的、與所要解決的問(wèn)題有關(guān)系的任何事物都可以作為對(duì)象,它題有關(guān)系的任何事物都可以作為對(duì)象,它既可以是具體的物理實(shí)體的抽象,也可以既可以是具體的物理實(shí)體的抽象,也可以是人為的概念,或者是任何有明確邊界和是人為的概念,或者是任何有明確邊界和意義的東西。例如,一名職工、一家公司、意義的東西。例如,一名職工、一家公司、一個(gè)窗口、一座圖書(shū)館、一本圖書(shū)、貸款一個(gè)窗口、一座圖書(shū)館、一本圖書(shū)、貸款和借款等,都可以作為一個(gè)對(duì)象。和借款等,都可以作為一個(gè)對(duì)象。l總之,對(duì)象是對(duì)問(wèn)題域中某個(gè)實(shí)體的抽象,總之,對(duì)象是對(duì)問(wèn)題域中某個(gè)實(shí)體的抽象,設(shè)立某個(gè)對(duì)象就

9、反映了軟件系統(tǒng)保存有關(guān)設(shè)立某個(gè)對(duì)象就反映了軟件系統(tǒng)保存有關(guān)它的信息,并具有與它進(jìn)行交互的能力。它的信息,并具有與它進(jìn)行交互的能力。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 15 頁(yè)1、什么是對(duì)象?l在不同場(chǎng)合具有不同的含義:在不同場(chǎng)合具有不同的含義:l問(wèn)題空間:所有要研究的客觀現(xiàn)實(shí)的全體問(wèn)題空間:所有要研究的客觀現(xiàn)實(shí)的全體稱為問(wèn)題空間或問(wèn)題域,而把要研究的問(wèn)稱為問(wèn)題空間或問(wèn)題域,而把要研究的問(wèn)題客觀世界中的實(shí)體稱之為問(wèn)題空間題客觀世界中的實(shí)體稱之為問(wèn)題空間的對(duì)象的對(duì)象 l解空間:所有的解程序及執(zhí)行程序的計(jì)解空間:所有的解程序及執(zhí)行程序的計(jì)算機(jī)組成的集合稱為解空間,把解程算機(jī)組成的集合稱為解空間,

10、把解程序及執(zhí)行程序的計(jì)算機(jī)實(shí)體稱做解空間序及執(zhí)行程序的計(jì)算機(jī)實(shí)體稱做解空間的對(duì)象的對(duì)象面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 16 頁(yè)1、什么是對(duì)象?問(wèn)題空間對(duì)象問(wèn)題空間對(duì)象圖書(shū)1MyBook1 : CBook書(shū) 名:程序設(shè)計(jì)總頁(yè)數(shù):280版 本:2.m_pczName:char* =“程序設(shè)計(jì)”nTotalPage:int =280nEdition:int =2.返回書(shū)名返回總頁(yè)數(shù)返回版本號(hào).char* GetBookName();int GetTotalPage();int GetEdition();.分析中的對(duì)象設(shè)計(jì)中的對(duì)象面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 17 頁(yè)1、什么是對(duì)象?

11、l對(duì)象是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些對(duì)象是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體有可以唯一標(biāo)識(shí)它的名字,而且向外界提有可以唯一標(biāo)識(shí)它的名字,而且向外界提供一組服務(wù)。供一組服務(wù)。l屬性屬性attribute表示對(duì)象的性質(zhì),屬性表示對(duì)象的性質(zhì),屬性值規(guī)定了對(duì)象所有可能的狀態(tài),一般只能值規(guī)定了對(duì)象所有可能的狀態(tài),一般只能通過(guò)執(zhí)行對(duì)象的操作來(lái)改變。通過(guò)執(zhí)行對(duì)象的操作來(lái)改變。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 18 頁(yè)1、什么是對(duì)象?l操作是指該對(duì)象可以展現(xiàn)的外部服務(wù),它操作是指該對(duì)象可以展現(xiàn)的外部服務(wù),它描述了對(duì)象執(zhí)行的功能,若通過(guò)

12、消息傳遞,描述了對(duì)象執(zhí)行的功能,若通過(guò)消息傳遞,還可以為其它對(duì)象使用。還可以為其它對(duì)象使用。l例如,大型客機(jī)可視為對(duì)象,它具有位置、例如,大型客機(jī)可視為對(duì)象,它具有位置、速度、顏色、容量等屬性,對(duì)于該對(duì)象可速度、顏色、容量等屬性,對(duì)于該對(duì)象可施行起飛、降落、加速、維修等操作,這施行起飛、降落、加速、維修等操作,這些操作將或多或少地改變飛機(jī)的屬性值些操作將或多或少地改變飛機(jī)的屬性值(形狀形狀)。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 19 頁(yè)1、什么是對(duì)象?對(duì)象:電視機(jī)對(duì)象:電視機(jī)Others.Internal StateTurn OnTurn OffChange ChannelAdjust V

13、olumeOthers變更頻道請(qǐng)求開(kāi)請(qǐng)求關(guān)調(diào)節(jié)音量被封裝的行為和狀態(tài)l類是具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的一組類是具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的一組相似對(duì)象的抽象。即表示某些對(duì)象在屬性相似對(duì)象的抽象。即表示某些對(duì)象在屬性和操作方面的共同特征。和操作方面的共同特征。l類是在對(duì)象之上的抽象,有了類以后,對(duì)類是在對(duì)象之上的抽象,有了類以后,對(duì)象則是類的具體化,是類的實(shí)例。象則是類的具體化,是類的實(shí)例。l把一組對(duì)象的共同特性加以抽象并存貯在把一組對(duì)象的共同特性加以抽象并存貯在一個(gè)類中的能力,是面向?qū)ο蠹夹g(shù)最重要一個(gè)類中的能力,是面向?qū)ο蠹夹g(shù)最重要的一點(diǎn)!的一點(diǎn)!面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 20

14、頁(yè)2、類的概念l類是建立對(duì)象時(shí)使用的類是建立對(duì)象時(shí)使用的“樣板樣板”,按照這,按照這個(gè)樣板所建立的一個(gè)個(gè)具體的對(duì)象,就是個(gè)樣板所建立的一個(gè)個(gè)具體的對(duì)象,就是類的實(shí)例。類的實(shí)例。l實(shí)例是某個(gè)具體類所描述的一個(gè)具體對(duì)象實(shí)例是某個(gè)具體類所描述的一個(gè)具體對(duì)象,如:,如:“張三張三”、“李四是類李四是類“中國(guó)人中國(guó)人的實(shí)例。的實(shí)例。l對(duì)象既可以是一個(gè)具體的對(duì)象,也可以泛對(duì)象既可以是一個(gè)具體的對(duì)象,也可以泛指一般的對(duì)象;而實(shí)例只能是一個(gè)具體的指一般的對(duì)象;而實(shí)例只能是一個(gè)具體的對(duì)象。對(duì)象。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 21 頁(yè)3、實(shí)例的概念面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 22 頁(yè)類與實(shí)例

15、class furniturecosttexturelocationcolorMove()object chaircost $50texture woodlocation scantumcolor blackMove()面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 23 頁(yè)4、消息的概念l對(duì)象之間進(jìn)行通訊的一種構(gòu)造叫做消息。對(duì)象之間進(jìn)行通訊的一種構(gòu)造叫做消息。 l當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),包含要求當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),包含要求接收對(duì)象去執(zhí)行某些活動(dòng)的信息。接收到接收對(duì)象去執(zhí)行某些活動(dòng)的信息。接收到消息的對(duì)象經(jīng)過(guò)解釋,然后予以響應(yīng)。這消息的對(duì)象經(jīng)過(guò)解釋,然后予以響應(yīng)。這種通訊機(jī)制叫做消息傳遞。

16、發(fā)送消息的對(duì)種通訊機(jī)制叫做消息傳遞。發(fā)送消息的對(duì)象不需要知道接收消息的對(duì)象如何對(duì)請(qǐng)求象不需要知道接收消息的對(duì)象如何對(duì)請(qǐng)求予以響應(yīng)。予以響應(yīng)。l通常一個(gè)消息由三部分組成:通常一個(gè)消息由三部分組成:l1接收消息的對(duì)象;接收消息的對(duì)象;面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 24 頁(yè)l2消息標(biāo)識(shí)符即消息名)消息標(biāo)識(shí)符即消息名)l3零個(gè)或多個(gè)變?cè)銈€(gè)或多個(gè)變?cè)猯訪問(wèn)一個(gè)方法的過(guò)程稱為向這個(gè)對(duì)象發(fā)送訪問(wèn)一個(gè)方法的過(guò)程稱為向這個(gè)對(duì)象發(fā)送一個(gè)消息一個(gè)消息message: sender,return value(s)4、消息的概念面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 25 頁(yè)5、面向?qū)ο蟮幕咎卣?封裝性l

17、在面向?qū)ο蟮某绦蛑?,把?shù)據(jù)和實(shí)現(xiàn)操作在面向?qū)ο蟮某绦蛑校褦?shù)據(jù)和實(shí)現(xiàn)操作的代碼集中起來(lái)放在對(duì)象內(nèi)部。一個(gè)對(duì)象的代碼集中起來(lái)放在對(duì)象內(nèi)部。一個(gè)對(duì)象好像是一個(gè)不透明的黑盒子,表示對(duì)象狀好像是一個(gè)不透明的黑盒子,表示對(duì)象狀態(tài)的數(shù)據(jù)和實(shí)現(xiàn)操作的代碼與局部數(shù)據(jù)都態(tài)的數(shù)據(jù)和實(shí)現(xiàn)操作的代碼與局部數(shù)據(jù)都被封裝在黑盒子里面,從外面是看不見(jiàn)的,被封裝在黑盒子里面,從外面是看不見(jiàn)的,更不能從外面直接訪問(wèn)和修改這些數(shù)據(jù)和更不能從外面直接訪問(wèn)和修改這些數(shù)據(jù)和代碼。代碼。l使用對(duì)象的時(shí)候只需要知道他向外界提供使用對(duì)象的時(shí)候只需要知道他向外界提供的接口的形式,無(wú)須知道它的數(shù)據(jù)結(jié)構(gòu)細(xì)的接口的形式,無(wú)須知道它的數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)和實(shí)

18、現(xiàn)操作的算法。節(jié)和實(shí)現(xiàn)操作的算法。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 26 頁(yè)5、面向?qū)ο蟮幕咎卣?繼承性l廣義地說(shuō),繼承是指能夠直接獲得已有的廣義地說(shuō),繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。性質(zhì)和特征,而不必重復(fù)定義它們。l在面向?qū)ο蠹夹g(shù)中,繼承是子類自動(dòng)地共在面向?qū)ο蠹夹g(shù)中,繼承是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。享基類中定義的數(shù)據(jù)和方法的機(jī)制。l繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同于其繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同于其他語(yǔ)言的最主要的特點(diǎn)!他語(yǔ)言的最主要的特點(diǎn)!l繼承具有傳遞性,如果類繼承具有傳遞性,如果類C繼承類繼承類B,類,類B繼承類繼承類A,則類,

19、則類C繼承類繼承類A面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 27 頁(yè)5、面向?qū)ο蟮幕咎卣?繼承性單繼承多重繼承設(shè)備輸出設(shè)備I/O設(shè)備輸入設(shè)備面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 28 頁(yè)5、面向?qū)ο蟮幕咎卣?繼承性l繼承使得相似的對(duì)象可以共享程序代碼和繼承使得相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余信息,同時(shí)使得對(duì)軟件的修改變得容易;信息,同時(shí)使得對(duì)軟件的修改變得容易;l繼承使得用戶在開(kāi)發(fā)新的應(yīng)用系統(tǒng)時(shí)不必繼承使得用戶在開(kāi)發(fā)新的應(yīng)用系統(tǒng)時(shí)不必完全重新開(kāi)始,可以繼承原有的相似系統(tǒng)完全重新開(kāi)始,可以繼承原有的相似系統(tǒng)或從類庫(kù)中選取需

20、要的類,在派生出新的或從類庫(kù)中選取需要的類,在派生出新的類以實(shí)現(xiàn)所需要的功能;類以實(shí)現(xiàn)所需要的功能;l有了繼承機(jī)制以后,還可以把已有的一般有了繼承機(jī)制以后,還可以把已有的一般性的解加以具體化,來(lái)達(dá)到軟件重用的目性的解加以具體化,來(lái)達(dá)到軟件重用的目的。的。面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 29 頁(yè)5、面向?qū)ο蟮幕咎卣?多態(tài)性l面向?qū)ο蟮暮诵膬?nèi)容是對(duì)象,封裝,承繼面向?qū)ο蟮暮诵膬?nèi)容是對(duì)象,封裝,承繼,多態(tài)和消息機(jī)制,其中多態(tài)就是為了描,多態(tài)和消息機(jī)制,其中多態(tài)就是為了描述現(xiàn)實(shí)世界的多樣性的,也是面向?qū)ο笾惺霈F(xiàn)實(shí)世界的多樣性的,也是面向?qū)ο笾凶顬橹匾奶匦裕梢赃@么說(shuō),不掌握多最為重要的特性

21、,可以這么說(shuō),不掌握多態(tài),就沒(méi)有真正地掌握面向?qū)ο蠹夹g(shù)。態(tài),就沒(méi)有真正地掌握面向?qū)ο蠹夹g(shù)。l簡(jiǎn)單的說(shuō),多態(tài)就是簡(jiǎn)單的說(shuō),多態(tài)就是“相同的表達(dá)式,不相同的表達(dá)式,不同的操作同的操作”,也可以說(shuō)成是,也可以說(shuō)成是“相同的命令相同的命令,不同的操作,不同的操作”面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 30 頁(yè)5、面向?qū)ο蟮幕咎卣?多態(tài)性員工員工程序員程序員業(yè)務(wù)員業(yè)務(wù)員文管文管每天上班時(shí)間一到,相當(dāng)每天上班時(shí)間一到,相當(dāng)于發(fā)了一條這樣的命令:于發(fā)了一條這樣的命令: “ “員工員工. .開(kāi)始上班開(kāi)始上班”( (同一條表達(dá)式同一條表達(dá)式) )l比如在公司中有各種職責(zé)不同的員工比如在公司中有各種職責(zé)不同的

22、員工(程程序員,業(yè)務(wù)員,文管等序員,業(yè)務(wù)員,文管等),他們,他們“上班上班時(shí),做不同的事情時(shí),做不同的事情(也可以看作是一種業(yè)也可以看作是一種業(yè)務(wù)邏輯務(wù)邏輯),我們把他們各自的工作都抽象,我們把他們各自的工作都抽象為為“上班上班”,關(guān)系如下:,關(guān)系如下: 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 31 頁(yè)6、類與類之間的關(guān)系承繼承繼關(guān)聯(lián)關(guān)聯(lián)PersonHouseresidence 0.*owner0.*FinancialInstitutionclientcreditor0.*0.*Mortgageprincipalrateterm關(guān)聯(lián)類關(guān)聯(lián)類ordered0.*1BankTrustCompany

23、面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 32 頁(yè)6、類與類之間的關(guān)系l類圖是由類及類與類之間的關(guān)系組成。我類圖是由類及類與類之間的關(guān)系組成。我們定義了類以后,就必須識(shí)別、描述類與們定義了類以后,就必須識(shí)別、描述類與類間的關(guān)系。類間的關(guān)系。l通常,類與類之間的關(guān)系具有如下幾種類通常,類與類之間的關(guān)系具有如下幾種類型型l1關(guān)聯(lián)關(guān)聯(lián)l2聚合和組合聚合和組合l3泛化泛化面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 34 頁(yè)1、與人類習(xí)慣的思維方法一致l傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)l以算法為核心以算法為核心l數(shù)據(jù)和過(guò)程相互獨(dú)立數(shù)據(jù)和過(guò)程相互獨(dú)立l解空間與問(wèn)題空間不一致,難于理解解空

24、間與問(wèn)題空間不一致,難于理解l面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)l以對(duì)象為核心以對(duì)象為核心l數(shù)據(jù)靜態(tài)屬性和過(guò)程動(dòng)態(tài)行為封數(shù)據(jù)靜態(tài)屬性和過(guò)程動(dòng)態(tài)行為封裝在一起裝在一起l解空間模擬客觀世界解空間模擬客觀世界面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 35 頁(yè)2、穩(wěn)定性好l傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)l開(kāi)發(fā)過(guò)程基于功能分析和功能分解開(kāi)發(fā)過(guò)程基于功能分析和功能分解l軟件結(jié)構(gòu)依賴于系統(tǒng)所要完成的功能,功軟件結(jié)構(gòu)依賴于系統(tǒng)所要完成的功能,功能需求發(fā)生變化時(shí)引起軟件結(jié)構(gòu)的整體修能需求發(fā)生變化時(shí)引起軟件結(jié)構(gòu)的整體修改改l面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)l基于構(gòu)造問(wèn)題領(lǐng)域的對(duì)象模型基于構(gòu)造問(wèn)題領(lǐng)域的對(duì)象模型l功能需求變化時(shí)僅需要做局部性的修改功能需求變化時(shí)僅需要做局部性的修改l由于現(xiàn)實(shí)世界中的實(shí)體是相對(duì)穩(wěn)定的,以由于現(xiàn)實(shí)世界中的實(shí)體是相對(duì)穩(wěn)定的,以對(duì)象為中心構(gòu)造的軟件系統(tǒng)也比較穩(wěn)定對(duì)象為中心構(gòu)造的軟件系統(tǒng)也比較穩(wěn)定面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)第 36 頁(yè)3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論