第01講面向對象的軟件開發(fā)ppt課件_第1頁
第01講面向對象的軟件開發(fā)ppt課件_第2頁
第01講面向對象的軟件開發(fā)ppt課件_第3頁
第01講面向對象的軟件開發(fā)ppt課件_第4頁
第01講面向對象的軟件開發(fā)ppt課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象的程序設計面向對象的程序設計面向對象的程序設計面向對象的程序設計第 2 頁本本 章章 要要 點點面向對象的程序設計面向對象的程序設計面向對象的程序設計面向對象的程序設計第 4 頁1、回顧結構化方法l程序設計語言只要順序、選擇和重復三種程序設計語言只要順序、選擇和重復三種形式的控制結構就足以表達出各種其他形形式的控制結構就足以表達出各種其他形式的結構。式的結構。l采用過程抽象的方式,把軟件視為處理流,采用過程抽象的方式,把軟件視為處理流,并定義成由一系列步驟構成的算法。每一并定義成由一系列步驟構成的算法。每一步驟都是帶有預定輸入和特定輸出的一個步驟都是帶有預定輸入和特定輸出的一個過程,把

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

3、。到另一個過程。面向對象的程序設計面向對象的程序設計第 6 頁1、回顧結構化方法l缺陷:缺陷:l1復用困難復用困難l2牽一發(fā)而動全身牽一發(fā)而動全身l3為了適應變化,要精心設計函數接口,為了適應變化,要精心設計函數接口,導致函數接口的日益復雜導致函數接口的日益復雜面向對象的程序設計面向對象的程序設計第 7 頁2、面向對象方法的提出l面向對象方法把問題論域中的主要實體做面向對象方法把問題論域中的主要實體做為系統(tǒng)開發(fā)的起點,主要考慮對象的行為為系統(tǒng)開發(fā)的起點,主要考慮對象的行為而不是必須執(zhí)行的一系列動作。而不是必須執(zhí)行的一系列動作。l在面向對象方法中,對象是數據抽象與過在面向對象方法中,對象是數據抽

4、象與過程抽象的綜合。程抽象的綜合。l系統(tǒng)狀態(tài)保存在各數據抽象所定義的數據系統(tǒng)狀態(tài)保存在各數據抽象所定義的數據存儲中。存儲中。l控制流包含在各個數據抽象中的操作內,控制流包含在各個數據抽象中的操作內,算法被分布到各種實體中。算法被分布到各種實體中。面向對象的程序設計面向對象的程序設計第 8 頁2、面向對象方法的提出l在使用面向對象方法開發(fā)的系統(tǒng)之中,系在使用面向對象方法開發(fā)的系統(tǒng)之中,系統(tǒng)結構基于對象間的交互。系統(tǒng)中某一部統(tǒng)結構基于對象間的交互。系統(tǒng)中某一部分的改變僅僅產生局部影響。分的改變僅僅產生局部影響。l其組成部分如下:其組成部分如下:l面向對象分析面向對象分析(OOA)l面向對象設計面向

5、對象設計(OOD) l面向對象程序設計面向對象程序設計(OOP) l即:即:OOSD = OOA + OOD + OOP。面向對象的程序設計面向對象的程序設計第 9 頁3、面向對象方法的基本思想l盡可能模擬人類習慣的思維方式,使開發(fā)盡可能模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述界解決問題的方法與過程,也就是使描述問題的問題空間即問題域與實現(xiàn)解法問題的問題空間即問題域與實現(xiàn)解法的解空間即求解域在結構上盡可能一的解空間即求解域在結構上盡可能一致。致。天下烏鴉天下烏鴉一般黑一般黑歸納歸納演繹演繹面向對象

6、的程序設計面向對象的程序設計第 10 頁l人類對客觀事物的認知過程人類對客觀事物的認知過程l從一般到特殊的演繹過程從一般到特殊的演繹過程l從特殊到一般的歸納方法從特殊到一般的歸納方法3、面向對象方法的基本思想運輸工具運輸工具飛機飛機汽車汽車輪船輪船火車火車水果水果蘋果蘋果香蕉香蕉梨梨籠統(tǒng)籠統(tǒng)面向對象的程序設計面向對象的程序設計第 11 頁3、面向對象方法的基本思想l面向對象方法提供了抽象和歸納的機制面向對象方法提供了抽象和歸納的機制抽象的客觀概念抽象的客觀概念概念:學生概念:學生抽象的數據類型抽象的數據類型類:學生類:學生實例化的對象實例化的對象對象:對象:Jane具體的一組相似客觀事物具體的

7、一組相似客觀事物實體:實體:Jane、Smith等等表示表示籠統(tǒng)籠統(tǒng)實例化實例化模擬模擬面向對象的程序設計面向對象的程序設計第 12 頁3、面向對象方法的基本思想劃分劃分將復雜問題將復雜問題復雜對象復雜對象劃分為一系劃分為一系列簡單的組列簡單的組成部分簡成部分簡單對象)單對象) 分類分類按照對象間的各種相按照對象間的各種相似性將對象分類似性將對象分類認識各類對象自認識各類對象自身屬性及行為身屬性及行為認識對象及類之認識對象及類之間關系間關系全部事物的全部事物的完整認識完整認識符合人類認知規(guī)律的軟件開發(fā)過程面向對象的程序設計面向對象的程序設計面向對象的程序設計面向對象的程序設計第 14 頁1、什

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

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

10、把解程序及執(zhí)行程序的計算機實體稱做解空間序及執(zhí)行程序的計算機實體稱做解空間的對象的對象面向對象的程序設計面向對象的程序設計第 16 頁1、什么是對象?問題空間對象問題空間對象圖書1MyBook1 : CBook書 名:程序設計總頁數:280版 本:2.m_pczName:char* =“程序設計”nTotalPage:int =280nEdition:int =2.返回書名返回總頁數返回版本號.char* GetBookName();int GetTotalPage();int GetEdition();.分析中的對象設計中的對象面向對象的程序設計面向對象的程序設計第 17 頁1、什么是對象?

11、l對象是封裝了數據結構及可以施加在這些對象是封裝了數據結構及可以施加在這些數據結構上的操作的封裝體,這個封裝體數據結構上的操作的封裝體,這個封裝體有可以唯一標識它的名字,而且向外界提有可以唯一標識它的名字,而且向外界提供一組服務。供一組服務。l屬性屬性attribute表示對象的性質,屬性表示對象的性質,屬性值規(guī)定了對象所有可能的狀態(tài),一般只能值規(guī)定了對象所有可能的狀態(tài),一般只能通過執(zhí)行對象的操作來改變。通過執(zhí)行對象的操作來改變。面向對象的程序設計面向對象的程序設計第 18 頁1、什么是對象?l操作是指該對象可以展現(xiàn)的外部服務,它操作是指該對象可以展現(xiàn)的外部服務,它描述了對象執(zhí)行的功能,若通過

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

13、olumeOthers變更頻道請求開請求關調節(jié)音量被封裝的行為和狀態(tài)l類是具有相同數據結構和相同操作的一組類是具有相同數據結構和相同操作的一組相似對象的抽象。即表示某些對象在屬性相似對象的抽象。即表示某些對象在屬性和操作方面的共同特征。和操作方面的共同特征。l類是在對象之上的抽象,有了類以后,對類是在對象之上的抽象,有了類以后,對象則是類的具體化,是類的實例。象則是類的具體化,是類的實例。l把一組對象的共同特性加以抽象并存貯在把一組對象的共同特性加以抽象并存貯在一個類中的能力,是面向對象技術最重要一個類中的能力,是面向對象技術最重要的一點!的一點!面向對象的程序設計面向對象的程序設計第 20

14、頁2、類的概念l類是建立對象時使用的類是建立對象時使用的“樣板樣板”,按照這,按照這個樣板所建立的一個個具體的對象,就是個樣板所建立的一個個具體的對象,就是類的實例。類的實例。l實例是某個具體類所描述的一個具體對象實例是某個具體類所描述的一個具體對象,如:,如:“張三張三”、“李四是類李四是類“中國人中國人的實例。的實例。l對象既可以是一個具體的對象,也可以泛對象既可以是一個具體的對象,也可以泛指一般的對象;而實例只能是一個具體的指一般的對象;而實例只能是一個具體的對象。對象。面向對象的程序設計面向對象的程序設計第 21 頁3、實例的概念面向對象的程序設計面向對象的程序設計第 22 頁類與實例

15、class furniturecosttexturelocationcolorMove()object chaircost $50texture woodlocation scantumcolor blackMove()面向對象的程序設計面向對象的程序設計第 23 頁4、消息的概念l對象之間進行通訊的一種構造叫做消息。對象之間進行通訊的一種構造叫做消息。 l當一個消息發(fā)送給某個對象時,包含要求當一個消息發(fā)送給某個對象時,包含要求接收對象去執(zhí)行某些活動的信息。接收到接收對象去執(zhí)行某些活動的信息。接收到消息的對象經過解釋,然后予以響應。這消息的對象經過解釋,然后予以響應。這種通訊機制叫做消息傳遞。

16、發(fā)送消息的對種通訊機制叫做消息傳遞。發(fā)送消息的對象不需要知道接收消息的對象如何對請求象不需要知道接收消息的對象如何對請求予以響應。予以響應。l通常一個消息由三部分組成:通常一個消息由三部分組成:l1接收消息的對象;接收消息的對象;面向對象的程序設計面向對象的程序設計第 24 頁l2消息標識符即消息名)消息標識符即消息名)l3零個或多個變元零個或多個變元l訪問一個方法的過程稱為向這個對象發(fā)送訪問一個方法的過程稱為向這個對象發(fā)送一個消息一個消息message: sender,return value(s)4、消息的概念面向對象的程序設計面向對象的程序設計第 25 頁5、面向對象的基本特征-封裝性l

17、在面向對象的程序中,把數據和實現(xiàn)操作在面向對象的程序中,把數據和實現(xiàn)操作的代碼集中起來放在對象內部。一個對象的代碼集中起來放在對象內部。一個對象好像是一個不透明的黑盒子,表示對象狀好像是一個不透明的黑盒子,表示對象狀態(tài)的數據和實現(xiàn)操作的代碼與局部數據都態(tài)的數據和實現(xiàn)操作的代碼與局部數據都被封裝在黑盒子里面,從外面是看不見的,被封裝在黑盒子里面,從外面是看不見的,更不能從外面直接訪問和修改這些數據和更不能從外面直接訪問和修改這些數據和代碼。代碼。l使用對象的時候只需要知道他向外界提供使用對象的時候只需要知道他向外界提供的接口的形式,無須知道它的數據結構細的接口的形式,無須知道它的數據結構細節(jié)和實

18、現(xiàn)操作的算法。節(jié)和實現(xiàn)操作的算法。面向對象的程序設計面向對象的程序設計第 26 頁5、面向對象的基本特征-繼承性l廣義地說,繼承是指能夠直接獲得已有的廣義地說,繼承是指能夠直接獲得已有的性質和特征,而不必重復定義它們。性質和特征,而不必重復定義它們。l在面向對象技術中,繼承是子類自動地共在面向對象技術中,繼承是子類自動地共享基類中定義的數據和方法的機制。享基類中定義的數據和方法的機制。l繼承性是面向對象程序設計語言不同于其繼承性是面向對象程序設計語言不同于其他語言的最主要的特點!他語言的最主要的特點!l繼承具有傳遞性,如果類繼承具有傳遞性,如果類C繼承類繼承類B,類,類B繼承類繼承類A,則類,

19、則類C繼承類繼承類A面向對象的程序設計面向對象的程序設計第 27 頁5、面向對象的基本特征-繼承性單繼承多重繼承設備輸出設備I/O設備輸入設備面向對象的程序設計面向對象的程序設計第 28 頁5、面向對象的基本特征-繼承性l繼承使得相似的對象可以共享程序代碼和繼承使得相似的對象可以共享程序代碼和數據結構,從而大大減少了程序中的冗余數據結構,從而大大減少了程序中的冗余信息,同時使得對軟件的修改變得容易;信息,同時使得對軟件的修改變得容易;l繼承使得用戶在開發(fā)新的應用系統(tǒng)時不必繼承使得用戶在開發(fā)新的應用系統(tǒng)時不必完全重新開始,可以繼承原有的相似系統(tǒng)完全重新開始,可以繼承原有的相似系統(tǒng)或從類庫中選取需

20、要的類,在派生出新的或從類庫中選取需要的類,在派生出新的類以實現(xiàn)所需要的功能;類以實現(xiàn)所需要的功能;l有了繼承機制以后,還可以把已有的一般有了繼承機制以后,還可以把已有的一般性的解加以具體化,來達到軟件重用的目性的解加以具體化,來達到軟件重用的目的。的。面向對象的程序設計面向對象的程序設計第 29 頁5、面向對象的基本特征-多態(tài)性l面向對象的核心內容是對象,封裝,承繼面向對象的核心內容是對象,封裝,承繼,多態(tài)和消息機制,其中多態(tài)就是為了描,多態(tài)和消息機制,其中多態(tài)就是為了描述現(xiàn)實世界的多樣性的,也是面向對象中述現(xiàn)實世界的多樣性的,也是面向對象中最為重要的特性,可以這么說,不掌握多最為重要的特性

21、,可以這么說,不掌握多態(tài),就沒有真正地掌握面向對象技術。態(tài),就沒有真正地掌握面向對象技術。l簡單的說,多態(tài)就是簡單的說,多態(tài)就是“相同的表達式,不相同的表達式,不同的操作同的操作”,也可以說成是,也可以說成是“相同的命令相同的命令,不同的操作,不同的操作”面向對象的程序設計面向對象的程序設計第 30 頁5、面向對象的基本特征-多態(tài)性員工員工程序員程序員業(yè)務員業(yè)務員文管文管每天上班時間一到,相當每天上班時間一到,相當于發(fā)了一條這樣的命令:于發(fā)了一條這樣的命令: “ “員工員工. .開始上班開始上班”( (同一條表達式同一條表達式) )l比如在公司中有各種職責不同的員工比如在公司中有各種職責不同的

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

23、面向對象的程序設計面向對象的程序設計第 32 頁6、類與類之間的關系l類圖是由類及類與類之間的關系組成。我類圖是由類及類與類之間的關系組成。我們定義了類以后,就必須識別、描述類與們定義了類以后,就必須識別、描述類與類間的關系。類間的關系。l通常,類與類之間的關系具有如下幾種類通常,類與類之間的關系具有如下幾種類型型l1關聯(lián)關聯(lián)l2聚合和組合聚合和組合l3泛化泛化面向對象的程序設計面向對象的程序設計面向對象的程序設計面向對象的程序設計第 34 頁1、與人類習慣的思維方法一致l傳統(tǒng)方法學傳統(tǒng)方法學l以算法為核心以算法為核心l數據和過程相互獨立數據和過程相互獨立l解空間與問題空間不一致,難于理解解空

24、間與問題空間不一致,難于理解l面向對象方法學面向對象方法學l以對象為核心以對象為核心l數據靜態(tài)屬性和過程動態(tài)行為封數據靜態(tài)屬性和過程動態(tài)行為封裝在一起裝在一起l解空間模擬客觀世界解空間模擬客觀世界面向對象的程序設計面向對象的程序設計第 35 頁2、穩(wěn)定性好l傳統(tǒng)方法學傳統(tǒng)方法學l開發(fā)過程基于功能分析和功能分解開發(fā)過程基于功能分析和功能分解l軟件結構依賴于系統(tǒng)所要完成的功能,功軟件結構依賴于系統(tǒng)所要完成的功能,功能需求發(fā)生變化時引起軟件結構的整體修能需求發(fā)生變化時引起軟件結構的整體修改改l面向對象方法學面向對象方法學l基于構造問題領域的對象模型基于構造問題領域的對象模型l功能需求變化時僅需要做局部性的修改功能需求變化時僅需要做局部性的修改l由于現(xiàn)實世界中的實體是相對穩(wěn)定的,以由于現(xiàn)實世界中的實體是相對穩(wěn)定的,以對象為中心構造的軟件系統(tǒng)也比較穩(wěn)定對象為中心構造的軟件系統(tǒng)也比較穩(wěn)定面向對象的程序設計面向對象的程序設計第 36 頁3

溫馨提示

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

最新文檔

評論

0/150

提交評論