第二講面向?qū)ο蠹夹g(shù)_第1頁(yè)
第二講面向?qū)ο蠹夹g(shù)_第2頁(yè)
第二講面向?qū)ο蠹夹g(shù)_第3頁(yè)
第二講面向?qū)ο蠹夹g(shù)_第4頁(yè)
第二講面向?qū)ο蠹夹g(shù)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第二講 面向?qū)ο蠹夹g(shù)主講人:1主要內(nèi)容面向?qū)ο蠹夹g(shù)的提出什么是面向?qū)ο蠹夹g(shù)對(duì)象類封裝性2問(wèn)題的提出傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)(Structured Programming-SP)方法 使用SP方法設(shè)計(jì)程序的步驟數(shù)據(jù)聲明數(shù)據(jù)處理結(jié)果輸出在數(shù)據(jù)處理過(guò)程中,采用的是自頂向下、分而治之的方法,將整個(gè)程序按功能劃分為幾個(gè)可獨(dú)立編程的子過(guò)程模塊,每一子模塊完成指定的子任務(wù),并且提供一個(gè)清晰、嚴(yán)格的調(diào)用界面,主過(guò)程通過(guò)調(diào)用各子過(guò)程完來(lái)成全部處理工作 。3f(1)過(guò)程/函數(shù)f(2)f(2)f(3)數(shù)據(jù)結(jié)構(gòu)BAC返回4存在的問(wèn)題(1)數(shù)據(jù)和函數(shù)分開(kāi),重疊的數(shù)據(jù)存取使并行性和完整性的問(wèn)題變得復(fù)雜(2)本質(zhì)上是面向過(guò)程的

2、,以功能和需求為核心,而“功能”和“需求”又是不穩(wěn)定和多變的,因此程序代碼經(jīng)常要進(jìn)行修改,不易維護(hù)。(3)程序代碼可重用性差。程序中除少數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù)外,每設(shè)計(jì)一個(gè)程序時(shí),程序員幾乎從零做起。即使重用代碼,通常也是通過(guò)拷貝或編輯重新生成一份。5如何解決面向?qū)ο蠹夹g(shù)(Object-Oriented Programming -OOP)6何為面向?qū)ο蠹夹g(shù)與面向過(guò)程相對(duì)應(yīng)(結(jié)構(gòu)化程序設(shè)計(jì))心理學(xué)研究表明,客觀世界由許多對(duì)象組成,對(duì)象具有其屬性和行為,對(duì)象之間存在著各種聯(lián)系,這樣能夠更好的刻畫問(wèn)題域,也更接近人類的自然思維方式。這就是面向?qū)ο蟪绦蜷_(kāi)發(fā)思想的由來(lái)。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法強(qiáng)調(diào)直接以問(wèn)題域(現(xiàn)實(shí)

3、世界)中的事物為中心來(lái)思考和認(rèn)識(shí)問(wèn)題,并按照這些事物的本質(zhì)特征把它們抽象為對(duì)象,以作為構(gòu)成軟件系統(tǒng)的基礎(chǔ)。7f(1)f(2)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單類(規(guī)則) + 復(fù)雜聯(lián)系 = 復(fù)雜系統(tǒng) 接口函數(shù)數(shù)據(jù)比較8面向?qū)ο笈c面向過(guò)程設(shè)計(jì)對(duì)比是一種數(shù)學(xué)思維或計(jì)算機(jī)思維方法,與人們認(rèn)識(shí)世界的方法不同以不穩(wěn)定的、多變的“過(guò)程”和“操作” 為中心來(lái)構(gòu)造系統(tǒng)可重用性較差是建立在認(rèn)識(shí)方法學(xué)基礎(chǔ)上的一項(xiàng)技術(shù)科學(xué),比較自然地模擬了人類認(rèn)識(shí)客觀世界的方式;以相對(duì)穩(wěn)定的“對(duì)象” 為中心來(lái)構(gòu)造系統(tǒng)可重用性較好面向過(guò)程程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)9將設(shè)計(jì)目標(biāo)從模擬現(xiàn)實(shí)世界的行為轉(zhuǎn)向了模擬現(xiàn)實(shí)世界中存在的對(duì)象及其各自的行為。 面向?qū)ο蟪绦蛟O(shè)計(jì)

4、是在吸取結(jié)構(gòu)化程序設(shè)計(jì)的一切優(yōu)點(diǎn)的基礎(chǔ)上發(fā)展起來(lái)的一種新的程序設(shè)計(jì)方法。它的本質(zhì)是把數(shù)據(jù)和處理數(shù)據(jù)的過(guò)程當(dāng)成一個(gè)整體對(duì)象。在OOP中,將“對(duì)象”作為系統(tǒng)中最基本的運(yùn)行實(shí)體,整個(gè)程序即由各種不同類型的對(duì)象組成,各對(duì)象既是一個(gè)獨(dú)立的實(shí)體,又可通過(guò)消息相互作用,對(duì)象中的方法決定要向哪個(gè)對(duì)象發(fā)消息、發(fā)什么消息以及收到消息時(shí)如何進(jìn)行處理等。面向?qū)ο蠹夹g(shù)10對(duì)象(Object)對(duì)象是客觀世界中的事物在人腦中的映像,這種映像通過(guò)對(duì)同一類對(duì)象的抽象反映成人的意識(shí),并做為一種概念而存在。每個(gè)對(duì)象都具有屬性(Attribute)和方法(Method)這兩方面的特征。對(duì)象的屬性描述了對(duì)象的狀態(tài)和特征,對(duì)象的方法說(shuō)明

5、了對(duì)象的行為和功能,并且對(duì)象的屬性值只應(yīng)由這個(gè)對(duì)象的方法來(lái)讀取和修改,兩者結(jié)合在一起就構(gòu)成了對(duì)象的完整描述。 11對(duì)象例一例 1:考慮對(duì)象 “學(xué)生”,具體描述為:對(duì)象名屬性操作學(xué)號(hào)、姓名、專業(yè)、性別、年齡、身份證號(hào)、電話等等獲取和修改學(xué)號(hào)、姓名、專業(yè)、性別、年齡等等學(xué)生( 表一 )注意點(diǎn): 一體性 三者成為一體12對(duì)象例二例 2:對(duì)象 “課程” 的有關(guān)抽象描述。對(duì)象名屬性操作課程課程名、編號(hào)、學(xué)時(shí)數(shù)、選課要求、任課教師等獲取并修改課程名、編號(hào)、學(xué)時(shí)數(shù)、選課要求、任課教師等(表二 )注意點(diǎn): 1. 屬性是對(duì)對(duì)象的靜態(tài)描述. 2. 操作是對(duì)對(duì)象的動(dòng)態(tài)描述. 外部是通過(guò)調(diào)用服務(wù)與對(duì) 象取得聯(lián)系.13

6、類(Class)具有相似屬性和行為的一組對(duì)象,就稱為類??梢?jiàn),有了類的概念以后,就可以對(duì)具有共同特征的事物進(jìn)行統(tǒng)一描述類是面向?qū)ο笳Z(yǔ)言必需提供的用戶定義的數(shù)據(jù)類型,它將具有相同狀態(tài)、操作和訪問(wèn)機(jī)制的多個(gè)對(duì)象抽象成為一個(gè)對(duì)象類。14類與對(duì)象的關(guān)系從一般意義上講,對(duì)象(Object)是現(xiàn)實(shí)世界中的客觀事物。類是把具有相同屬性的事物劃分為一類,從而得出的抽象概念。15類與對(duì)象的關(guān)系類與對(duì)象的關(guān)系 類 對(duì)象 抽象定義 實(shí)例 學(xué)生 學(xué)生王強(qiáng) 汽車 桑塔納,奔馳,寶馬 類型 變量, 如 C 語(yǔ)言中的 int 和 int x; 16類的特點(diǎn)-封裝與隱藏將算法和數(shù)據(jù)結(jié)構(gòu)有機(jī)集成在一起傳統(tǒng)方法:數(shù)據(jù)和操作分離支

7、持模塊化程序設(shè)計(jì)類成為基本的模塊,作為程序設(shè)計(jì)的基礎(chǔ)保護(hù)私有成員,隱藏實(shí)現(xiàn)細(xì)節(jié)使程序的可維護(hù)性、安全性得到保證17封裝(Encapsulation)面向?qū)ο笳Z(yǔ)言把數(shù)據(jù)和操作封裝于對(duì)象體之中,并提供一種訪問(wèn)機(jī)制,使對(duì)象的“私有數(shù)據(jù)”僅能由這個(gè)對(duì)象的操作來(lái)執(zhí)行。用戶只能通過(guò)允許公開(kāi)的操作提出要求(消息),才能查詢和修改對(duì)象的狀態(tài)。18封裝封裝是面向?qū)ο蠓椒ǖ囊粋€(gè)重要原則。它有兩個(gè)涵義:第一個(gè)涵義是,把對(duì)象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個(gè)不可分割的獨(dú)立單位(即對(duì)象)。第二個(gè)涵義也稱作“信息隱蔽”,即盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),對(duì)外形成一個(gè)邊界(或者說(shuō)形成一道屏障),只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。這主要是指對(duì)象的外部不能直接地存取對(duì)象的屬性,只能通過(guò)幾個(gè)允許外部使用的服務(wù)與對(duì)象發(fā)生聯(lián)系。f(1)f(2)數(shù)據(jù)結(jié)構(gòu)接口19封裝的例子鍵盤電視機(jī)手機(jī)20面向?qū)ο蠹夹g(shù)的特點(diǎn)(1)以對(duì)象為中心。由于對(duì)象自然地反映了應(yīng)用領(lǐng)域的模塊性,因此具有相對(duì)穩(wěn)定性,可以被用作一個(gè)組件去構(gòu)成更復(fù)雜的應(yīng)用,又由于對(duì)象一般封裝的是某一實(shí)際需求的各種成分,因此,某一對(duì)象的改變對(duì)整個(gè)系統(tǒng)幾乎沒(méi)有影響。(2)封裝性。實(shí)現(xiàn)細(xì)節(jié)隱藏,增強(qiáng)了安全性和簡(jiǎn)化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只需要通過(guò)外部接口,以特定的訪問(wèn)權(quán)限,來(lái)使用類的成員(3)可復(fù)用性。新的應(yīng)用程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論