




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 本章主要內(nèi)容 一、面向?qū)ο蟪绦蛟O(shè)計(jì)概念 二、面向?qū)ο蟪绦蛟O(shè)計(jì)方法與傳統(tǒng)設(shè)計(jì)方法對(duì)比 三、面向?qū)ο蟪绦蛟O(shè)計(jì)的語(yǔ)言20世紀(jì)60年 IBM的OS/360,約100萬(wàn)條指令,5000人年,數(shù)億美元。結(jié)果令人沮喪,錯(cuò)誤多達(dá)2000多個(gè)。1967年前蘇聯(lián)“聯(lián)盟一號(hào)”載人飛船,其軟件設(shè)計(jì)時(shí)忽略了一個(gè)小數(shù)點(diǎn),導(dǎo)致機(jī)毀人亡。美國(guó)阿波羅登月飛行計(jì)劃,阿波羅8號(hào),14號(hào)都出現(xiàn)大量錯(cuò)誤。軟件危機(jī)(software crisis):軟件規(guī)模的擴(kuò)大,復(fù)雜度的提高,需求的不斷增大,“生產(chǎn)作坊式”的軟件開(kāi)發(fā)模式已經(jīng)不能滿(mǎn)足軟件開(kāi)發(fā)的需要。軟件產(chǎn)品質(zhì)量低下,甚至開(kāi)發(fā)夭折;生產(chǎn)效率低1968年提出軟件工程的概念1990年IEE
2、E定義軟件工程為:對(duì)軟件開(kāi)發(fā)、運(yùn)作、維護(hù)的系統(tǒng)化的、有規(guī)范的、可定量的方法之應(yīng)用。軟件工程是一門(mén)指導(dǎo)軟件開(kāi)發(fā)的工程學(xué)科。包含了方法與技術(shù)、工具及環(huán)境、軟件工程管理、標(biāo)準(zhǔn)和規(guī)范四個(gè)方面內(nèi)容。面向?qū)ο蟮能浖_(kāi)發(fā)方法OOSD(object-oriented software development)是20世紀(jì)90年代提出的一種全新的軟件設(shè)計(jì)方法 OOSD由OOA、OOD、OOP組成。OOA面向?qū)ο蟮姆治?主要解決“做什么”O(jiān)OD面向?qū)ο蟮脑O(shè)計(jì):進(jìn)一步解決“如何做”O(jiān)OP面向?qū)ο蟮某绦蛟O(shè)計(jì):使用面向?qū)ο蟮恼Z(yǔ)言進(jìn)行編程 程序設(shè)計(jì)的泛型(paradigm): 定義:是設(shè)計(jì)程序的規(guī)范、模型和風(fēng)格。 是一類(lèi)程
3、序設(shè)計(jì)語(yǔ)言的基礎(chǔ),體現(xiàn)了一類(lèi)語(yǔ)言的特征。 不同的程序設(shè)計(jì)泛型有不同的設(shè)計(jì)技術(shù)和方法學(xué) 例如: 面向過(guò)程程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì) 函數(shù)式程序設(shè)計(jì)(描述輸入輸出之間的關(guān)系,LISP)、模塊程序設(shè)計(jì)、邏輯是程序設(shè)計(jì)等等 主要特征: 程序由過(guò)程定義和過(guò)程調(diào)用組成 過(guò)程:執(zhí)行某項(xiàng)操作的一段代碼,函數(shù)是最常用的過(guò)程。 程序 = 過(guò)程 + 調(diào)用 基于面向過(guò)程程序設(shè)計(jì)泛型的語(yǔ)言被稱(chēng)為面向過(guò)程性語(yǔ)言 C、Pascal、Fortran、Ada等 主要特征: 程序= 對(duì)象+消息 對(duì)象是面向?qū)ο蟪绦虻幕疽?主要結(jié)構(gòu)特點(diǎn): 由類(lèi)定義和類(lèi)使用兩部分組成 程序中的操作是通過(guò)對(duì)象發(fā)送消息來(lái)實(shí)現(xiàn)。 注意:某種程序設(shè)計(jì)語(yǔ)言
4、不一定與一種設(shè)計(jì)泛型對(duì)應(yīng) C+是具有面向過(guò)程和面向?qū)ο蠓盒偷幕旌闲驮O(shè)計(jì)語(yǔ)言 主要概念 1、對(duì)象 2、類(lèi) 3、消息與方法現(xiàn)實(shí)世界中,任何事物都是對(duì)象。具體的:一張桌子、一輛汽車(chē)抽象的:一次課、一場(chǎng)球賽簡(jiǎn)單的:一張桌子、一次課復(fù)雜的:一輛汽車(chē)、一場(chǎng)球賽對(duì)象具有靜態(tài)的屬性(狀態(tài))和動(dòng)態(tài)的行為(操作或功能)人的靜態(tài)屬性:身高、體重、膚色、姓名等等動(dòng)態(tài)行為:吃、喝、拉、撒、跑、跳。現(xiàn)實(shí)世界的對(duì)象的特征:每個(gè)對(duì)象必須有一個(gè)名字以區(qū)別其他對(duì)象屬性描述對(duì)象的某些特征有一組操作,每組操作決定對(duì)象的一種行為對(duì)象的行為可以分為兩類(lèi):作用于自身的行為、作用于其他對(duì)象的行為 對(duì)象 = 描述其屬性的數(shù)據(jù) + 數(shù)據(jù)的操作(
5、函數(shù))數(shù)據(jù)操作代碼對(duì)象學(xué)號(hào)、姓名成績(jī)、體重、愛(ài)好、.輸入姓名、輸出姓名、輸入成績(jī)、計(jì)算學(xué)分積、某個(gè)學(xué)生 類(lèi):一組具有相同屬性和行為的對(duì)象的抽象 人、計(jì)算機(jī)、教室. 類(lèi)和對(duì)象抽象和具體學(xué)號(hào):2008姓名:張三成績(jī):250體重:300KG愛(ài)好:睡覺(jué)、.上課吃飯?zhí)咔蛱诱n學(xué)生張三 類(lèi): 具有相同的數(shù)據(jù)、相同操作(函數(shù))的一組對(duì)象的的集合 數(shù)據(jù)成員 、 成員函數(shù)n面向?qū)ο蟪绦蛟O(shè)計(jì)中,先聲明類(lèi),再由類(lèi)生成對(duì)象n類(lèi)是建立對(duì)象的模板類(lèi)對(duì)象對(duì)象的實(shí)例化 對(duì)象之間需要聯(lián)系,稱(chēng)為對(duì)象的交互 對(duì)象之間交互的機(jī)制稱(chēng)為消息傳遞 消息:一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)送的請(qǐng)求 對(duì)象收到請(qǐng)求后,調(diào)用相關(guān)的方法,執(zhí)行相應(yīng)的操作 消息的三
6、個(gè)性質(zhì) 同一個(gè)對(duì)象可以接受不同形式的多個(gè)消息,做出不同的響應(yīng) 相同的消息傳遞給不同的對(duì)象,做出的反應(yīng)可以不同 對(duì)消息的響應(yīng)不是必須的 消息:調(diào)用對(duì)象的函數(shù)就是向該對(duì)象發(fā)送一個(gè)消息 方法:接收消息對(duì)象的調(diào)用成員函數(shù)來(lái)實(shí)現(xiàn)消息的處理。 方法包括 界面:方法名(函數(shù)名)、調(diào)用協(xié)議(參數(shù)列表) 方法體:實(shí)現(xiàn)操作的一系列步驟的程序,即函數(shù)體 1、抽象 2、封裝 3、繼承 4、多態(tài)抽象是將有關(guān)事務(wù)的共性歸納和集中的過(guò)程,是通過(guò)特定的實(shí)例(對(duì)象)抽取共同性質(zhì)后形成概念的過(guò)程。OOP方法中抽象的結(jié)果是通過(guò)類(lèi)來(lái)描述和實(shí)現(xiàn)的。實(shí)例:學(xué)生成績(jī)管理程序共同屬性(數(shù)據(jù)成員):學(xué)號(hào) int num;姓名 string n
7、ame;成績(jī)、float score;共同行為(成員函數(shù)):輸入數(shù)據(jù) input();修改數(shù)據(jù) modify();輸出數(shù)據(jù) print();封裝是OOP一個(gè)重要特征OOP中封裝:把數(shù)據(jù)和操作代碼集中起來(lái),放在對(duì)象內(nèi)部,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。通過(guò)對(duì)象與外界的接口來(lái)使用對(duì)象。C+中的接口就是函數(shù)名封裝的含義: 將數(shù)據(jù)和操作封裝在一個(gè)對(duì)象中,對(duì)象間相互獨(dú)立,互不干擾 對(duì)象中某些數(shù)據(jù)和操作對(duì)外隱蔽,只留下少量接口與外界聯(lián)系。對(duì)外界隱蔽的做法稱(chēng)為信息隱藏。有利于數(shù)據(jù)安全數(shù)據(jù)操作代碼1操作代碼2操作代碼n接口接口接口OOP中,繼承表達(dá)的是對(duì)象之間的相互關(guān)系。通過(guò)這種關(guān)系,使某一類(lèi)可以繼承另一類(lèi)的特征
8、和能力類(lèi)之間具有繼承關(guān)系的特征 類(lèi)間具有共享特征(共享的數(shù)據(jù)和操作代碼) 類(lèi)間具有差別或新增部分(非共享數(shù)據(jù)和操作代碼) 類(lèi)間具有層次結(jié)構(gòu)A類(lèi)基類(lèi)或者父類(lèi)B類(lèi)派生類(lèi)或者子類(lèi)A類(lèi)B類(lèi)C類(lèi)直接基類(lèi)間接基類(lèi) 繼承的作用: 避免公共代碼重復(fù)開(kāi)發(fā),減少代碼和冗余 增強(qiáng)一致性來(lái)減少模塊間的接口和界面。 軟件重用: 通過(guò)繼承可以利用已有類(lèi)建立一個(gè)新類(lèi),可重用已有代碼。增加了程序的可重用性,減少了代碼和數(shù)據(jù)冗余及編程工作量 繼承從繼承源上分 單重繼承 多重繼承窗口編輯窗口對(duì)話(huà)窗口玩具車(chē)玩具車(chē)學(xué)生大學(xué)生小學(xué)生 現(xiàn)實(shí)世界的多態(tài) C+中的多態(tài),不同的對(duì)象接收到相同的消息執(zhí)行不同的操作 C+支持兩種多態(tài)性 編譯時(shí)的多
9、態(tài)性:函數(shù)重載,運(yùn)算符重載 運(yùn)行時(shí)的多態(tài)性:虛函數(shù) 增強(qiáng)了程序的靈活性、可重用性 傳統(tǒng)的程序設(shè)計(jì)方法 生產(chǎn)效率低 面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì),采用功能分解逐步求精。顆粒度小,從語(yǔ)句級(jí)開(kāi)始 數(shù)據(jù)和操作分離,同一數(shù)據(jù)的操作分散。軟件的編寫(xiě)和修改復(fù)雜。 維護(hù)周期長(zhǎng)。 總之:軟件重用性低、復(fù)雜性高、可維護(hù)性差 傳統(tǒng)程序設(shè)計(jì)難以應(yīng)付日益龐大的信息量和多樣的信息類(lèi)型 多媒體數(shù)據(jù) 傳統(tǒng)程序設(shè)計(jì)難以適應(yīng)各種新環(huán)境 并行、分布式、網(wǎng)絡(luò)OOP方法的主要優(yōu)點(diǎn) 可提高程序重用性1、對(duì)象的封裝性提高了顆粒度2、建立類(lèi)庫(kù)、通過(guò)繼承來(lái)派生 可控制程序的復(fù)雜性封裝和信息隱藏使數(shù)據(jù)和操作作為整體來(lái)操作。 可改善程序的可維護(hù)性對(duì)象的獨(dú)立性。封裝和信息隱藏防止非法操作,減少錯(cuò)誤率 能夠更好的支持大型程序設(shè)計(jì)類(lèi)的獨(dú)立性、繼承等機(jī)制 增強(qiáng)了計(jì)算機(jī)處理信息的范圍比較接近自然思維 能很好的適應(yīng)新的硬件環(huán)境。對(duì)象、消息傳遞等思想和機(jī)制與分布式、并行、多處理機(jī)、網(wǎng)絡(luò)等硬件環(huán)境較為為吻合20世紀(jì)50年代LISP語(yǔ)言,提出了動(dòng)態(tài)聯(lián)編和交互式開(kāi)發(fā)環(huán)境的概念20世界60年代,Simula引入了面向?qū)ο箢?lèi)、繼承等的一些概念和特征20世紀(jì)70年代出現(xiàn)了CLU、Modula-2、Ada語(yǔ)言。同時(shí)期,美國(guó)Xerox公司研制的Smalltalk,公認(rèn)的第一個(gè)真正面向?qū)ο蟮恼Z(yǔ)言。OOP語(yǔ)言發(fā)展的里程碑,標(biāo)志OOP的誕生
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025朝花夕拾閱讀心得體會(huì)(20篇)
- 農(nóng)村紅利專(zhuān)項(xiàng)管理制度
- 試用期工作自我鑒定(30篇)
- 信息系統(tǒng)監(jiān)理師考試資源整合及試題答案分享
- 語(yǔ)文教師期末成績(jī)分析總結(jié)與反思(17篇)
- 數(shù)據(jù)庫(kù)錯(cuò)誤日志分析方法試題及答案
- 員工食堂餐飲服務(wù)合同
- 鄉(xiāng)村農(nóng)業(yè)生態(tài)建設(shè)合同
- 計(jì)算機(jī)三級(jí)嵌入式技能考試試題及答案
- 理論結(jié)合實(shí)踐公路工程考試的有效復(fù)習(xí)法試題及答案
- PHPstorm激活碼2025年5月13日親測(cè)有效
- 2022年高考地理試卷(天津)(解析卷)
- 《ISO 37001-2025 反賄賂管理體系要求及使用指南》專(zhuān)業(yè)解讀和應(yīng)用培訓(xùn)指導(dǎo)材料之4:6策劃(雷澤佳編制-2025A0)
- T-CSTM 00290-2022 超高性能混凝土檢查井蓋
- 2025年2月21日四川省公務(wù)員面試真題及答案解析(行政執(zhí)法崗)
- 球團(tuán)機(jī)械設(shè)備工程安裝及質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 餐廳刀具使用管理制度
- 安全微課考試試題及答案
- 實(shí)施《保護(hù)世界文化與自然遺產(chǎn)公約》的操作指南
- 混凝土路面施工勞務(wù)合同
- 數(shù)字修約考試題及答案
評(píng)論
0/150
提交評(píng)論