《軟件工程(第六章面向對象方法概述)》由會員分享,可在線閱讀,更多相關《軟件工程(第六章面向對象方法概述)(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,軟 件 工 程,第17講:,面向對象方法,主講人:陽王東,Email:,主要內(nèi)容,編程的沉思,什么是面向對象,面向對象的特征,對象之間的關系,編程的沉思,編程存在重復勞動嗎,機器替代了人手工的重復勞動,程序則替代了人腦的重復性勞動,編程無重復,程序中的世界,經(jīng)典的公式:數(shù)據(jù)結構+算法,面向對象認為軟件功能是通過一個個對象的行為來完成的。,庖丁解牛的三重境界,眼中全牛,心中無牛,心中解牛,心中全牛,面向對象的基本概念,對象的定義,對象是具有相同狀態(tài)的一組操作的集合。,對象是對業(yè)務系統(tǒng)中某個東西的抽象,這種抽象
2、反映了系統(tǒng)保存有關這個東西的信息或與它交互的能力。,對象是封裝了數(shù)據(jù)結構及可以施加在這些數(shù)據(jù)結構上的操作的封裝體,對象是一臺自動機。,對象=,其中,ID是對象的標識或名字,MS是對象中的操作集合,DS是對象的數(shù)據(jù)結構,MI是對象受理的消息名集合(即對外接口),對象(Object)是類(Class)的一個實例(Instance)。,面向對象的基本概念(續(xù)),類的定義,對具有相同數(shù)據(jù)和相同操作的一組相似對象的定義。,類是對象的程序描述,對象是該程序運行時所創(chuàng)建的實例。,對象比作房子,那么類就是房子的設計圖紙。,對象比作一個個活人,則人類則是對人這類動物的特征和行為的描述。,對象比作一條條活狗,則狗
3、類則是對狗這類動物的特征和行為的描述。,面向對象程序設計的重點是類的設計,而不是對象的設計。,面向對象的基本概念(續(xù)),消息,就是要求某個對象執(zhí)行在定義它的那個類中所定義的某個操作的規(guī)格說明。通常,一個消息由下述三部分組成:,接收消息的對象;,消息選擇符(也稱為方法名);,零個或多個參數(shù)值。,對象A向對象B發(fā)送消息f就是對象A調(diào)用對象B的方法f,面向對象的特征,以數(shù)據(jù)為中心,抑或以行為為中心,分別用上述兩種方式來描述人,封裝性,繼承性,多態(tài)性,封裝性,封裝性是把對象的屬性和方法結合成一個獨立的單元,并盡可能蔭蔽對象的內(nèi)部細節(jié)。,Public,private,protected,避免訪問內(nèi)部數(shù)據(jù)
4、,盡量通過方法訪問,優(yōu)點,數(shù)據(jù)獨立(每個對象都對應于一個獨立的地址空間),具有隱藏性和安全性,易于維護(由于數(shù)據(jù)獨立,易于發(fā)現(xiàn)問題),缺點,需要較多的輸入輸出函數(shù),超市銷售系統(tǒng),倉庫,屬性,服務,價格表,物品列表,帳單,提供物品,帳單,入庫、出庫,抽象,商品,屬性,服務,商標,型號,計量單位、價格、數(shù)量,入庫、銷售、折扣、查詢數(shù)量等,抽象,繼承性,繼承是事物之間存在的共性,子類自動地共享基類中定義的數(shù)據(jù)和方法的機制。,基類與派生類,單繼承與多重繼承,繼承的優(yōu)點,減少原代碼,即代碼可重用。,代碼的相互獨立性。,易于維護。,體現(xiàn)自然界之間的關系。,繼承性(續(xù)),車輛的繼承關系,動物科目劃分的一種繼
5、承關系,非機動車,客車,卡車,車輛,拖拉機,機動車,自行車,人力車,翼手目,貓科,哺乳動物,靈長目,食肉目,鯨目,人科,猴科,犬科,人,猩猩,狗,狼,狐,貓,虎,豹,繼承性(續(xù)),不要濫用繼承,如果類A和類B毫不相關,不可以為了使B的功能更多些而讓B繼承A的功能。人想擁有狗鼻子的靈敏問題。,若在邏輯上A是B的“一部分”(a part of),則不允許B繼承A的功能,而是要用A和其它東西組合出B。頭與眼睛、鼻子、耳朵、嘴巴的關系。,盡量避免使用多重繼承。,繼承的層次不宜太多,多態(tài)性,對不同的消息表現(xiàn)出不同的行為,覆蓋與重載,虛方法,參數(shù)重載,參數(shù)數(shù)目不同,參數(shù)類型不同,參數(shù)類型順序不同,抽象類和
6、接口,實現(xiàn)與繼承,類與對象的描述,(a)是表示類&對象的圖形符號,(b)是表示類的圖形符號。,對象之間的關系,歸納關系,組合關系,關聯(lián)關系。,歸納關系,歸納關系就是“一般特珠”關系,它反映了一個類與若干個互不相容的子類之間的分類關系。高層類(即基類)說明一般性的屬性,低層類(即派生類)說明特殊屬性。低層類對象是某種特殊的高層類對象,它繼承了在高層類中定義的屬性和服務。,歸納關系體現(xiàn)為一種繼承關系,歸納關系(續(xù)),組合關系,組合關系就是“整體部分”關系,它反映了對象之間的構成關系。組合關系也稱為聚集關系。,組合關系具有的最重要的性質是傳遞性。也就是說,如果A是B的一部分,B是C的一部分,則A也是C的一部分,組合關系(續(xù)),關聯(lián)關系,關聯(lián)關系反映對象之間相互依賴、相互作用的關系。通常把兩類對象之間的二元關系再細分為一對一(11)、一對多(1M)和多對多(MN)等三種,基本類型,類型的劃分依據(jù)參與關聯(lián)的對象的數(shù)目,關聯(lián)關系(續(xù)),鏈屬性。關聯(lián)鏈可以通過關聯(lián)類來實現(xiàn),對象模型實例,作業(yè),利用面向對象的方法對項目的題目進行初步業(yè)務對象分析和描述。,