




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 面向?qū)ο筌浖こ谈攀?2,面 向 對 象 的 發(fā) 展 過 程,面向?qū)ο蠓椒ǖ挠蓙?面向?qū)ο蠓椒ǖ囊c,認(rèn)為客觀世界是由各種對象組成的,任何事物都是對象,復(fù)雜的對象可以有比較簡單的對象以某種方式組合而成。 把所有對象都劃分成各種對象類,每個對象類都定義了一組數(shù)據(jù)和一組方法 按照子類與父類的關(guān)系,把若干個對象類組成一個層次結(jié)構(gòu)的系統(tǒng)。 對象彼此之間僅能通過傳遞消息互相聯(lián)系。,OO=object +classes +inheritance +communication with messages,5,對象(Object) 問題空間的對象:現(xiàn)實世界中任何實際存在的 事物都是對象 ( 是對實體概
2、念的一種描述),面向?qū)ο蟮母拍?物理實體,軟件實體,概念實體,6,對象是一個具有封裝了的數(shù)據(jù)結(jié)構(gòu)和 操作的實體,這個實體有一個標(biāo)識它的 名字,對外通過相應(yīng)的接口,提供相應(yīng) 的服務(wù)。 計算機(jī)程序中的對象是具有三個特征 的實體:標(biāo)識、狀態(tài)、行為.,方法空間的對象: 是對某個事物的抽象描述,7,對象特征 (對象的屬性和行為),屬性 Atribute,描述對象“靜態(tài)”(結(jié)構(gòu))特征的一個數(shù)據(jù)項; 屬性是對象知道的事情;描述對象的當(dāng)前狀態(tài),操作 Operation,描述對象“動態(tài)”(行為)特征的一個操作序列; 操作是調(diào)用對象執(zhí)行的轉(zhuǎn)換或查詢的規(guī)格說明; 有可能改變對象的狀態(tài);操作是方法的抽象說明。,說明對
3、象在什么條件下是可行的。,方法 Method,對象完成的事情。是操作的實現(xiàn)或執(zhí)行操作的 函數(shù)或過程。是實現(xiàn)類的行為的過程抽象。,規(guī)格,思考:,屬性完全相同的兩個事物,是否是同一個對象? 舉例。,兩個教師姓名和職稱都相同,但它們卻是兩個不同的對象。,所有的對象都是獨立的實體,都有其唯一的標(biāo)識。 對象之間的區(qū)別是由它們固有的存在性所決定的, 而與它們的特征是否相同無關(guān)。,9,類是具有相同屬性和操作的一組對象的集合,它為 屬于該類的全部對象提供了統(tǒng)一的抽象描述。,類(Class),1) 類的定義,2) 類和對象,類可以是對象,但對象不是類; 類是對象的抽象描述;對象是類的實例; 實例:Instanc
4、e具有身份和值的獨立實體,10,概念層的類,Rectangle,Rectangle height Width getArea resize,Rectangle Height:int Width:int getArea():int Resize(int,int),對象 (實例),p:Rectangle height =10 Width = 20,:Rectangle height =15 Width = 25,3) 類的描述幾種情況,說明層的類,實現(xiàn)層的類,如,學(xué)生類,getname() setname() getNo() setNo(),Student,Name No(學(xué)號),又如,繪圖中的點
5、類,x:Integer y:Integer,move() getX() getY() setX() setY(),Point,用Java定義點類,Class Point int nx; /點的x坐標(biāo) int ny; /點的y坐標(biāo) int nColor; /顏色值 void move(int x,int y);/ 將當(dāng)前點移到、y處 int getX(); /獲當(dāng)前點X坐標(biāo) int getY(); /獲當(dāng)前點Y坐標(biāo) int setX(); int setY();Point mypoint;/點類的一個對象,類是一個支持繼承的抽象數(shù)據(jù)類型;,4) 類的作用,類是創(chuàng)建(實例化)對象的模板,類是對 對
6、象的抽象;,類類似一張表,表內(nèi)描述了數(shù)據(jù)和操作的 封裝體。,類是一個命名空間,為類的泛化聲明建立 作用域,13,表示兩個類之間是“is a” ,“is like”或 “is kind of”關(guān)系.,繼承 (Inheritance),superclass,subclass,繼承使兩個以上的類共享相同的屬性和/或 相同方法.,繼承提高了復(fù)用性.,繼承的各個類可形成層次結(jié)構(gòu).,繼承各個類的操作可以被多次聲明,14,消息(message),消 息 包 括 的 信 息,消息是一個對象向另一個對象發(fā)出的服務(wù)請求 (操作的請求、執(zhí)行方法的請求),要求系統(tǒng)的某個 對象完成它指定的操作.,15,為不同的目的建立
7、不同層次上的抽象,并將 不同層次上的同一概念的兩種元素聯(lián)系起來 的依賴關(guān)系,一個元素比另一個元素更詳細(xì)。,抽象(Abstraction),抽象是確定一個事物的本質(zhì)特征的行為,使 這個事物與其他事物區(qū)分開。,抽象是自底向上的對幾組事物觀察,找出事 物的共性,把具有共性的事物劃分成一類。,16,抽象類(abstract class),抽象類是不能被直接實例化的類,即他沒有 直接的實例。,對象是對問題域中某些事物的抽象; 類是對對象的一個抽象;,17,抽象類,18,封裝(Encapsulation),將數(shù)據(jù)(屬性)和 行為(服務(wù)) 細(xì)節(jié)封裝在對象中。 隱藏了對象的內(nèi)部細(xì)節(jié): 信息隱蔽(informa
8、tion hiding),封裝性的條件,又如,單筆定購(Purchase)封裝了一個外界無法存取 的私有屬性金額(amount),外界可以調(diào)用的公開操 作計算(calculate)。 對象間通過傳遞消息及合作。投資人(Investor) 對象傳遞一個消息給單筆定購,執(zhí)行計算操作。,Investor,Purchase -amount:Double +calculate():Double,:Investor,1,*,:Purchase,對象消息傳遞,對象封裝,calculate(),可見性(visibility),UML有四種可見性: 公開(public),在圖中可表示為(十) 私有(privat
9、e),在圖中可表示為(-) 保護(hù)(protected),在圖中可表示為(#) 包(package),在圖中可表示為() 同包的類可以看見其他類內(nèi)部的屬性 和操作。,21,封裝的意義,# 表達(dá)事物的靜態(tài)特征和動態(tài)特征(是事物不可 分割的兩個側(cè)面),# 封裝性使我們只要注意該對象對外呈現(xiàn)什么 行為(做什么),而不關(guān)心內(nèi)部的實現(xiàn)細(xì)節(jié) (怎么做)。 可以避免外部入侵,提高軟件的可維護(hù)性、 可修改性,# 描述系統(tǒng)中的功能是如何劃分的,22,多態(tài)性(Polymorphism),在面向?qū)ο笾? 特定的功能有多種實現(xiàn)方式,說明,多態(tài)性表示了對象屬于多個類的能力。,抽象操作是多態(tài)的,抽象操作可以在不同 的類中按
10、不同方式執(zhí)行。,多態(tài)性增加了OO的靈活性,減少冗余信息, 提高可重用性,可擴(kuò)展性,易于維護(hù)。,23,在OO語言中,多態(tài)性的實現(xiàn)與下列概念有關(guān),如,Shape類,Shape,Line,Triangle,Square,Rectangle,畫圖系統(tǒng)中類的繼承關(guān)系,各種圖形具有共同的屬性和 操作:顏色、線型、旋轉(zhuǎn)、移動。 但在不同圖形中對Draw的描繪 雖然不同,外界都可以采用以下方式調(diào)用:,Draw(),Shape *aShape;Line *aLine;aLine = new Line;aShape = aLine;aShape.draw();/調(diào)用的是類Line的方法。,為外界調(diào)用提供統(tǒng)一的接口
11、,使對圖形擴(kuò)充成為可能。,25,噴泉模型,面向?qū)ο蟮姆缎?噴泉模型 (fountain model),無隙性 復(fù)用 概括、聚集對 客觀世界對象 的模型化,26,OO 軟件開發(fā)生命周期,面向?qū)ο筌浖_發(fā)的基本過程,面向?qū)ο蠓治觯∣OA,Object Oriented Analysis ) 面向?qū)ο笤O(shè)計(OOD,Object Oriented Design ) 面向?qū)ο缶幊蹋∣OP,Object Oriented Programming) 面向?qū)ο鬁y試(OOT,Object Oriented Test ) 面向?qū)ο缶S護(hù)(OOM,Object Oriented Maintenance ),1.面向?qū)?/p>
12、象的軟件開發(fā)過程,應(yīng)用軟件開發(fā)的起點是用戶的實際問題和需求,終點是一個可較好解決用戶的實際問題和滿足用戶原始需求的應(yīng)用軟件。 從起點到終點的整個開發(fā)過程,若采用面向?qū)ο蟮姆椒?,可分為?需求分析、需求模型化、概要設(shè)計、詳細(xì)設(shè)計、實現(xiàn),2.面向?qū)ο蟮姆治鲭A段,作用:明確用戶的需求,并用標(biāo)準(zhǔn)化的面向?qū)ο蟮哪P蛠硪?guī)范地表述這一需求,最后將形成面向?qū)ο蟮姆治瞿P?,即OOA模型。 參與人員:用戶和開發(fā)人員協(xié)作完成,(1)需求分析,任務(wù): 明確用戶的需求,包括對用戶需求的全面理解和分析、篩選,明確所要開發(fā)的軟件系統(tǒng)的職責(zé)界限、并進(jìn)行各種可行性研究和制訂資源、進(jìn)度預(yù)算等。,(2)需求模型化,任務(wù): 將需求以
13、標(biāo)準(zhǔn)化模型的形式規(guī)范地表述出來,即將用戶和開發(fā)人員腦子里形成的需求以準(zhǔn)確的文字、圖表等形式表述出來,形成雙方都認(rèn)可的文件。,需求模型化,面向?qū)ο蟮能浖_發(fā)過程 方法:需求模型化。不止一種。 作用:抽取存在于用戶需求中的各對象實體,分析、明確這些對象實體的靜態(tài)數(shù)據(jù)屬性和動態(tài)操作屬性,以及它們之間的關(guān)系; 反映出由多個對象組成的系統(tǒng)的整體功能和狀態(tài),包括各種狀態(tài)間的變遷和對象在這些變遷中起到的作用,對象在整個系統(tǒng)中的位置等。,2.面向?qū)ο蟮脑O(shè)計階段,概要設(shè)計 界面管理:負(fù)責(zé)整個系統(tǒng)的人機(jī)界面設(shè)計; 任務(wù)管理:負(fù)責(zé)系統(tǒng)中處理并行操作之類類似于操作系統(tǒng)功能的工作。 數(shù)據(jù)管理:負(fù)責(zé)系統(tǒng)與數(shù)據(jù)庫的接口。 OOD包括上述三點OOA模型代表的“問題邏輯”部分,詳細(xì)設(shè)計,任務(wù):對概要設(shè)計所得到模型做進(jìn)一步的細(xì)化分析、設(shè)計和驗證。 細(xì)化分析:包括對類靜態(tài)數(shù)據(jù)屬性的確定,對類方法(即操作)的參數(shù)、返回值、功能的實現(xiàn)的明確規(guī)定等。 細(xì)化驗證:主要指對各對象類公式間的相容性和一致性的驗證,對各個類、類內(nèi)成員的訪問權(quán)限的嚴(yán)格合理性的驗證,也包括驗證對象類的功能是否符合用戶的需
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全球環(huán)保產(chǎn)業(yè)技術(shù)創(chuàng)新與市場前景分析報告2025
- BLX-3887-生命科學(xué)試劑-MCE
- 寧夏葡萄酒與防沙治沙職業(yè)技術(shù)學(xué)院《中國文學(xué)導(dǎo)讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 滄州師范學(xué)院《綜藝節(jié)目編導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 內(nèi)蒙古師范大第二附中2024年化學(xué)九年級第一學(xué)期期末達(dá)標(biāo)測試試題含解析
- 武昌首義學(xué)院《中外經(jīng)典戲劇作品選講》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年河北省石家莊市橋西區(qū)九年級化學(xué)第一學(xué)期期末質(zhì)量檢測模擬試題含解析
- 共享出行信用保險與信用體系構(gòu)建研究報告
- 2025全球勞動力趨勢報告第1期
- 2024年山東省青島市廣雅中學(xué)七年級數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)檢測模擬試題含解析
- 天然氣開采業(yè)的技術(shù)裝備與設(shè)施建設(shè)
- 市自然資源局保密審查工作自查自糾情況總結(jié)
- 葫蘆灸培訓(xùn)課件
- 大自然中的數(shù)字:數(shù)學(xué)在自然界的應(yīng)用
- 《鋼筋混凝土結(jié)構(gòu)課程設(shè)計》
- PSP問題解決程序
- 自動鎖螺絲機(jī)的使用說明書
- 2023年專業(yè)技術(shù)人員繼續(xù)教育公需課題庫附含答案
- 集團(tuán)資金集中管理辦法
- 建設(shè)用地報批程序及基本要求
- 北師大版八年級數(shù)學(xué)上冊教學(xué)課件全套
評論
0/150
提交評論