




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
主講機械學院雷琦主講機械學院雷琦面向對象開發(fā)方法面向對象的基本原理面向對象方法的主要機制面向對象方法的開發(fā)過程面向對象開發(fā)方法一、面向對象的基本原理客觀世界是實體及實體相互間的關系構成的客觀世界中的實體就是對象什么是對象?如何反映和概括對象的基本特征?一部二十四史,一言以蔽之,厚臉皮黑心腸而已!封建權貴未必懂政治學,但無人不通帝王將相常勝不敗的政治機密大奸大詐用而不說的爭雄秘傳???人的本質決定于思想與行為的統(tǒng)一!對象的本質是數(shù)據(jù)與操作的封裝!一、面向對象的基本原理人以群分物以類聚1.區(qū)分對象及組成
區(qū)分整體對象及其組成部分如:汽車——轎車、公共汽車、貨車…
汽車——車輪、車體、發(fā)動機…2.區(qū)分對象的屬性
如:車——顏色、大小、耗油量…3.分類
如:世界——人、動物、植物…
交通工具——車、船、飛機…人類認識和理解現(xiàn)實世界的三個構造法則:一、面向對象的基本原理(一)面向對象的基本思想世界是有對象組成的,客觀世界中的萬物或人腦中的各種概念,都是對象——現(xiàn)實世界中實體的抽象模型。一、面向對象的基本原理
客觀世界是由實體及實體相互間的關系構成的,因此我們把客觀世界中的實體抽象為對象(Object)。面向對象就是面向“實體”,盡可能按照人類認識世界的方法和思維方式來分析和解決問題,因此,人們將任何感興趣或要加以研究的事物、概念都統(tǒng)稱為對象,以對象作為最基本的元素,作為分析問題、解決問題的核心。計算機實現(xiàn)的對象與真實世界具有一對一的關系,不必作任何轉換,這樣就使面向對象更易于為人們所理解、接受和掌握。(一)面向對象的基本思想一、面向對象的基本原理面向對象方法思想的四個要點:認為客觀世界是由各種對象組成的,任何事物都是對象,復雜的對象可以由比較簡單的對象組合而成。把所有對象歸納成各種對象類(簡稱為類(Class)),每個對象類都定義了一組數(shù)據(jù)和一組方法(操作),數(shù)據(jù)用于表示對象的屬性(狀態(tài)),方法是對象的功能(行為)。按照子類(或稱為派生類)與父類(或稱為基類)的關系,把若干個對象類組成一個層次結構的系統(tǒng)(也稱為類等級),子類對父類有繼承性。對象彼此之間僅能通過傳遞消息互相聯(lián)系。一、面向對象的基本原理(二)面向對象的概念和術語1.對象(Object)object1.物體;2.對象,目標;3.目的,宗旨。
——《現(xiàn)代英語詞典》對象是行動或思考時作為目標的人或事物。
——《現(xiàn)代漢語詞典》(商務印書館,1996)對象是一個封閉體,它是由一組數(shù)據(jù)(屬性)和施加于這些數(shù)據(jù)上的一組操作(功能)構成。
——在OO方法中的定義一、面向對象的基本原理對象(Object)的定義對象屬性操作——反映事物的狀態(tài)、內部結構——反映事物的行為、功能對象的數(shù)據(jù)刻畫了對象的屬性,反映對象靜止的一面,表明對象的狀態(tài);對象的操作刻畫了對象的功能,表明對象的行為,反映了事物的運動規(guī)律;對象的屬性決定了對象可能的行為,而對象的行為又能改變對象自身的屬性(狀態(tài))。一、面向對象的基本原理接口
操作集合狀態(tài)集合消息回送消息狀態(tài)轉換對象的本質是數(shù)據(jù)與操作的封裝,這種封裝性又稱信息隱藏,它保證每個對象在定義時盡可能少地顯露其內部的處理,從而能夠很好地屏蔽局部不穩(wěn)定因素,把易變因素對整個系統(tǒng)結構的影響降到最低。封裝在一起的數(shù)據(jù)和操作之間是相互影響、相互作用的。對象的屬性值(即數(shù)據(jù))只能通過執(zhí)行對象的操作來改變。由于封裝,惟一能改變對象狀態(tài)的方式是接收來自其他對象發(fā)來的消息,并通過自身封裝的服務功能來實現(xiàn)。對象的內部組織與封裝一、面向對象的基本原理一個對象的內部組織包括以下幾個方面:■標識:即對象的名稱,用來區(qū)分其他對象。■數(shù)據(jù):用來描述對象屬性的存儲或數(shù)據(jù)結構,它表明了對象的一個狀態(tài)。■操作:即對象的行為,又稱為方法或服務。操作可分為兩類:一類是對象自身承受的操作,即操作結果修改了自身原有屬性狀態(tài);另一類是施加于其他對象的操作,即將產生的輸出結果作為消息發(fā)送的操作。■接口:主要指對外接口,是指對象受理外部消息所指定的操作的名稱集合。對象的特征一、面向對象的基本原理countervalueinit()dec()inc()counter的對象表示[示例1]:“計數(shù)器”counter屬性:value——保存數(shù)值提供三個服務:init()置value為0;dec()使value減1;inc()使value加1。一、面向對象的基本原理 Play(放音)鍵播放
Record(錄音)鍵錄下歌曲操作 . . .狀態(tài)S操作1、2、3的實現(xiàn)操作1操作2操作3界面[示例2]:音頻(錄音機)的對象表示一、面向對象的基本原理①以數(shù)據(jù)為中心。操作圍繞對數(shù)據(jù)所需進行的處理來設置,而且操作的結果往往與當時所處的狀態(tài)(數(shù)據(jù)值)有關。②對象是主動的。它與傳統(tǒng)的數(shù)據(jù)有本質的不同,不是被動地等待對它進行處理,而對象為了完成某個操作,通過對象的公有接口向它發(fā)消息,請求執(zhí)行某個操作,處理它的私有數(shù)據(jù)。對象的特點一、面向對象的基本原理③實現(xiàn)了數(shù)據(jù)封裝。對象的數(shù)據(jù)對外是不可見的,對私有數(shù)據(jù)的訪問或處理只能通過公有的操作進行,具有典型的黑盒子特征。④本質上具有并行性。不同對象各自獨立地處理自身的數(shù)據(jù),彼此通過傳遞消息完成通信,因此,本質上具有并行工作的屬性。⑤模塊獨立性好。對象是面向對象的軟件的基本模塊(內聚性強,耦合性弱)。對象的特點一、面向對象的基本原理2.類(Class)
類——是一組具有相同數(shù)據(jù)結構和相同操作的對象的集合。
——在OO方法中的定義分類是人們認識客觀世界的基本方法。車輛客車貨車工程車
樹桃樹橡樹松樹定義一、面向對象的基本原理類與實例
一個對象就是該對象所在類的一個實例(instance),或者說,任何一個對象都是某一對象類的實例。
類是抽象虛無的,而實例是具體的。實例(具體對象)是類的具體事物,類是多個實例的綜合抽象。實例既具有共性又有個性,對象的共性是指其所能接受消息的接口和實現(xiàn)操作功能的方法(也稱行為),對象的個性是指形成的私有存儲單元。一、面向對象的基本原理柯洛克(C.ROCK)柯洛克-1(C.ROCK-1)車架高科技成型鋁合金避震車架高科技成型鋁合金避震車架前叉鋁合金避震前叉ROCKSHOXJUDYTT避震前叉飛輪SHIMANOACERA24速SHIMANOACERA24速配備雙層鋁圈,碟剎花鼓,可直接配裝碟剎,建大26x2.35輪胎雙層鋁圈,PROMAX機械式碟剎,建大26x2.35輪胎自行車的共性:自行車的個性:≠≠=一、面向對象的基本原理類是對象的抽象,類的具體化就是對象,也可以說類的實例是對象。類具有屬性,它是對象狀態(tài)的抽象,用數(shù)據(jù)結構來描述類的屬性。類具有可操作性。它是對象行為的抽象,用操作名和實現(xiàn)該操作的方法來描述。類是有層次的,在面向對象的方法中,自下而上對現(xiàn)有類的共同性質進行抽象體現(xiàn)了人們的歸納思維能力,稱為“泛化”;自上而下把現(xiàn)有類劃分為更具體的子類體現(xiàn)了人們的演繹思維能力,稱為“細化”。類與對象一、面向對象的基本原理3.封裝(Encapsulation)
封裝就是把對象的屬性和服務結合成的一個獨立的系統(tǒng)單位,并盡可能隱藏對象的內部細節(jié)。
封裝具有兩層涵義,一是把對象的全部數(shù)據(jù)和操作結合在一起,形成一個不可分割的獨立單位(對象);二是盡可能隱藏對象的內部細節(jié),對外形成一個邊界,只保留有限的接口與外界聯(lián)系。一、面向對象的基本原理[示例]:“售報亭”的封裝屬性:各種報刊(名稱、定價)、錢箱(總金額)服務:報刊零售,款貨清點,報刊進貨封裝——“亭子”接口——“窗口”顧客只能從這個窗口要求提供服務,而不能自己伸手到亭內拿報刊或找零錢。款貨清點是一個內部服務,不向顧客開放。一、面向對象的基本原理
對象是一個很好的封裝體,它向外提供的界面包括一組數(shù)據(jù)(屬性)和一組操作(服務),而把內部的實現(xiàn)細節(jié)隱藏起來。封裝的信息隱藏作用反映事物的相對獨立性,當我們站在對象以外的角度觀察一個對象時,只需注意“做什么”,不必關心“怎么做”。封裝的原則在軟件上的反映是:要求使對象以外的部分不能隨意存取對象的內部數(shù)據(jù)(屬性),從而有效地避免了外部錯誤對它的“交叉感染”,錯誤被限制在局部。另一方面,當對象的內部需要修改時,由于它只通過少量的服務接口對外提供服務,因此大大減少了內部的修改對外部的影響,減少了“波動效應”。一、面向對象的基本原理哺乳動物人獸學生教師小學生大學生孫三李四虎東北虎趙一錢二
繼承者稱為子類,被繼承者稱為父類,單一父類的情形稱為單繼承(例如樹形結構),兩個以上父類的情形稱為多繼承。4.繼承(Inheritance)
繼承具有傳遞性,若類C繼承類B,類B繼承類A,則類C繼承類A。繼承的優(yōu)點在于可以極大程度地減少設計和程序實現(xiàn)中的重復性。一、面向對象的基本原理傳送對象(SENDER)接受對象(RECEIVER)接口消息<操作名、參數(shù)>5.消息(Message)
消息是對象之間交互、通信的手段,是外界能夠引用對象操作及獲取對象狀態(tài)的唯一方式。一個對象向其他對象發(fā)出帶有參數(shù)的消息,接受消息的對象激活相應的方法,執(zhí)行相應的操作,完成所需要的操作,也叫做對象的行為,從而改變自身的狀態(tài)。一、面向對象的基本原理協(xié)議或稱外部接口、方法
協(xié)議或稱外部接口,是一個對象對外服務的說明,它告知一個對象可以為外界做什么,外界能夠并且只能向該對象發(fā)送協(xié)議中所提供的消息,請求該對象服務。
方法是實現(xiàn)每條消息具體功能的手段。方法與協(xié)議一一對應,有一條協(xié)議就必然有一個方法實現(xiàn)之。外界只能通過對象的協(xié)議或外部接口向該對象發(fā)送消息。封裝使對象成為獨立的系統(tǒng)單位,而消息則提供各對象間唯一合法的動態(tài)聯(lián)系途徑。一、面向對象的基本原理[示例]顧客對售報亭說:“我買一份《寧波晚報》”。售報亭接收到這個消息后執(zhí)行一次對外提供的服務(報刊零售),這條消息包含下述信息:對象標識——接受者(售報亭)服務標識——要求的服務(報刊零售) 輸入信息——《寧波晚報》,一份,1.00元錢回答信息——買到的《寧波晚報》報紙和找零0.50元錢一、面向對象的基本原理(三)面向對象方法的本質“面向對象”是一種認識客觀世界的認知方法學,這種認識方法將客觀世界看成是由許許多多不同對象構成的,每一個對象都有自己的運動規(guī)律和內部狀態(tài),不同對象間的相互作用和通訊構成了完整的客觀世界,因而,從人們思維模型和認識事物的角度,面向對象很自然地與客觀世界的固有特征相對應。一、面向對象的基本原理面向對象=對象(屬性及服務的封裝)+分類+繼承+消息通信二、面向對象方法的主要機制OO最基本的思想:通過系統(tǒng)中的最穩(wěn)定(即那些對變化不敏感的部分)的方面(對象)來刻畫系統(tǒng),通過信息屏蔽將比較容易變化的元素隱藏,把易變因素對整個系統(tǒng)結構的影響降到最低。(一)抽象、封裝(信息屏蔽機制)對象是事物的行為和狀態(tài)兩種特性的抽象。狀態(tài)是行為的結果,行為是狀態(tài)或內部結構的變化。
抽象機制就是把對象的動態(tài)特性與靜態(tài)特性抽象為數(shù)據(jù)結構以及在數(shù)據(jù)結構上施加的一組操作,并把它們封裝在一起,使對象狀態(tài)變成對象屬性值的集合,對象行為變成能改變對象狀態(tài)的操作的集合(方法的集合、功能的集合)。1.抽象、抽象機制二、面向對象方法的主要機制2.封裝、信息屏蔽機制封裝又稱為信息屏蔽機制或信息隱藏機制,是指軟件組成的部件應當分離或隱藏。用戶只能看見對象封裝截面上的信息,對象內部對用戶而言是隱蔽的。封裝的目的在于將對象的使用者和對象的設計者分離開來,使用者不必知道行為實現(xiàn)的細節(jié),只需用設計者所提供的消息來訪問對象。二、面向對象方法的主要機制封裝的另外一個目的是為了將維護局部化。面向對象的抽象封裝使對象信息隱藏在局部。當對象進行修改,或對象自身產生錯誤的時候,由此帶來的影響僅僅局限在對象內部而不會波及其他對象乃至整個系統(tǒng)環(huán)境,這極大方便了軟件設計、構造和運行過程中的檢錯、修改。易維護性二、面向對象方法的主要機制(二)消息傳遞機制消息用來請求對象執(zhí)行某種處理,或回答某些信息的要求,統(tǒng)一了數(shù)據(jù)流和控制流。消息完全由接收對象解釋,接收對象獨立決定采用什么方式完成所需的處理。一個對象能接收不同形式、不同內容的多個消息。同一條消息也可以同時發(fā)至多個對象,并允許接受同一消息的對象按各自的方式響應。消息傳遞機制很自然地與分布式并行、多機系統(tǒng)、網絡通信等模型取得一致,強有力地支持復雜大系統(tǒng)的分析與運行。二、面向對象方法的主要機制(三)繼承性、可重用機制繼承性又稱可重用機制(也稱代碼共享機制或程序共享對象機制),它是軟件部件化的基礎。繼承是面向對象特有的,亦是最有力的機制。通過繼承支持重用,實現(xiàn)軟件資源共享、演化以及增強擴充。繼承性是面向對象方法實現(xiàn)可重用性的前提和最有效的特性,它不僅支持系統(tǒng)的可重用性,避免了屬性描述和操作程序的冗余,而且還促進了系統(tǒng)的可擴張性。二、面向對象方法的主要機制(四)多態(tài)性
多態(tài)性:同一消息發(fā)送至不同類或對象可導致不同的操作結果,使軟件開發(fā)設計更便利,編碼更靈活。多態(tài)性支持“同一接口,多種方法”,使高層代碼或算法程序只寫一次,而低層可多次復用,從而提高了程序設計的靈活性和程序設計效率。二、面向對象方法的主要機制三、面向對象方法的開發(fā)過程系統(tǒng)調查和需求分析系統(tǒng)分析階段OOA系統(tǒng)設計階段OOD系統(tǒng)實現(xiàn)階段OOP(一)系統(tǒng)分析階段,OOA
面向對象分析(ObjectOrientedAnalysis,OOA),就是抽取和整理用戶需求并建立問題域精確模型的過程。在繁雜的問題領域中抽象地識別出對象及其行為、結構、屬性等。識別對象/類確定對象的屬性分析陳述用戶需求確定對象的服務確定對象/類的關系三、面向對象方法的開發(fā)過程
某物資出入庫管理系統(tǒng)主要對產成品、零部件/中間件、原材料、輔料及標準件等物資進行管理,物資種類不多,但出入庫頻率較高,出入量大。庫存管理員通過該系統(tǒng)實現(xiàn)物資出入庫登記,定期匯總核算、生成報表,不定期查詢物資庫存等功能。[示例]:某物資出入庫管理系統(tǒng)分析三、面向對象方法的開發(fā)過程1.分析陳述用戶需求系統(tǒng)需要維護和提供的信息有:1)物資信息,包括物資名稱、種類、計量單位、單價等;2)出入庫信息,包括物資出入庫時間、物資名稱、數(shù)量、供貨單位、提貨單位等;3)庫存信息,包括庫存物資名稱、數(shù)量、安全庫存點等;4)匯總核算信息,包括某時間段內一種物資出入庫總數(shù)量、總金額等;5)庫存管理員信息,包括姓名、使用權限、密碼等。三、面向對象方法的開發(fā)過程驗收單領料單物資臺帳匯總表核算表出庫流水帳入庫流水帳單據(jù)表類:帳2.識別對象/類實體對象三、面向對象方法的開發(fā)過程物資屬性:編碼名稱計量單位規(guī)格超儲點欠儲點服務領料單屬性:時間價格數(shù)量領料單位經辦人服務3.定義對象的屬性以對象“物資”和“領料單”為例:三、面向對象方法的開發(fā)過程物資屬性:編碼名稱計量單位規(guī)格超儲點欠儲點服務:產生()釋放()領料單屬性:時間價格數(shù)量領料單位經辦人服務:產生()釋放()4.確定對象的服務三、面向對象方法的開發(fā)過程驗收單領料單物資臺帳匯總表核算表單據(jù)表帳繼承:組合:入庫流水帳出庫流水帳5.實體對象的靜態(tài)關系三、面向對象方法的開發(fā)過程(二)面向對象設計,OOD
面向對象設計(ObjectOrientedDesign)階段要解決的問題是如何把分析階段確定出來的對象和類配置起來以實現(xiàn)系統(tǒng)功能,并建立系統(tǒng)體系結構。從面向對象分析到面向對象設計,是一個逐漸擴充模型的過程。或者說,面向對象設計就是用面向對象觀點建立求解域模型的過程。三、面向對象方法的開發(fā)過程1.面向對象設計的準則模塊化支持性強信息隱蔽弱耦合強內聚可重用三、面向對象方法的開發(fā)過程2.面向對象設計的主要任務(1)對實體對象進行增、并、改,并識別接口對象和控制對象;(2)確定實體對象、接口對象和控制對象之間的各種關系,完善對象類結構圖(其中包括對象靜態(tài)聯(lián)系圖和對象關系圖);(3)系統(tǒng)的體系結構設計。三、面向對象方法的開發(fā)過程
系統(tǒng)實現(xiàn)階段(Object-OrientedProgramming,簡稱OOP)。根據(jù)系統(tǒng)設計階段的文檔資料,運用面向對象的程序設計語言加以實現(xiàn)。面向對象實現(xiàn)主要包括兩項工作:把面向對象設計結果翻譯成用某種程序語言書寫的面向對象程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025酒店的承包經營合同
- 2025LED廣告屏制作安裝合同
- 2025設備抵押借款合同范本
- 2025鋁合金門窗工程承包合同
- 2025年購房資金短缺的借款合同范本
- 2025城市供電特許經營合同樣本
- 2025租賃擔保合同模板
- 2025大學生個人車輛租賃合同
- 2025年農業(yè)用地流轉合同模板
- 2025跨國租賃合同范本
- 中級宏觀經濟學知到課后答案智慧樹章節(jié)測試答案2025年春浙江大學
- 第19課《十里長街送總理》 統(tǒng)編版語文(五四學制)六年級上冊
- (完整版)四級短對話真題里的虛擬語氣
- 2025 ACC-AHA急性冠脈綜合征患者管理指南解讀課件
- 《強化危險化學品“一件事”全鏈條安全管理措施》知識培訓
- 智慧樹知到《形勢與政策(北京大學)》2025春期末答案
- 2025年中國尼龍注塑件市場調查研究報告
- 《智慧能源體系》課程教學大綱
- 大象版五年級下冊《科學》全套教學課件
- DBJ04-T 241-2024 公共建筑節(jié)能設計標準
- 1.2區(qū)域整體性和關聯(lián)性-以青田縣稻魚共生為例課件-高中地理人教版(2019)選擇性必修2
評論
0/150
提交評論