版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二講 面向?qū)ο蠹夹g(shù)主講人:1主要內(nèi)容面向?qū)ο蠹夹g(shù)的提出什么是面向?qū)ο蠹夹g(shù)對象類封裝性2問題的提出傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)(Structured Programming-SP)方法 使用SP方法設(shè)計(jì)程序的步驟數(shù)據(jù)聲明數(shù)據(jù)處理結(jié)果輸出在數(shù)據(jù)處理過程中,采用的是自頂向下、分而治之的方法,將整個程序按功能劃分為幾個可獨(dú)立編程的子過程模塊,每一子模塊完成指定的子任務(wù),并且提供一個清晰、嚴(yán)格的調(diào)用界面,主過程通過調(diào)用各子過程完來成全部處理工作 。3f(1)過程/函數(shù)f(2)f(2)f(3)數(shù)據(jù)結(jié)構(gòu)BAC返回4存在的問題(1)數(shù)據(jù)和函數(shù)分開,重疊的數(shù)據(jù)存取使并行性和完整性的問題變得復(fù)雜(2)本質(zhì)上是面向過程的
2、,以功能和需求為核心,而“功能”和“需求”又是不穩(wěn)定和多變的,因此程序代碼經(jīng)常要進(jìn)行修改,不易維護(hù)。(3)程序代碼可重用性差。程序中除少數(shù)標(biāo)準(zhǔn)庫函數(shù)外,每設(shè)計(jì)一個程序時,程序員幾乎從零做起。即使重用代碼,通常也是通過拷貝或編輯重新生成一份。5如何解決面向?qū)ο蠹夹g(shù)(Object-Oriented Programming -OOP)6何為面向?qū)ο蠹夹g(shù)與面向過程相對應(yīng)(結(jié)構(gòu)化程序設(shè)計(jì))心理學(xué)研究表明,客觀世界由許多對象組成,對象具有其屬性和行為,對象之間存在著各種聯(lián)系,這樣能夠更好的刻畫問題域,也更接近人類的自然思維方式。這就是面向?qū)ο蟪绦蜷_發(fā)思想的由來。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法強(qiáng)調(diào)直接以問題域(現(xiàn)實(shí)
3、世界)中的事物為中心來思考和認(rèn)識問題,并按照這些事物的本質(zhì)特征把它們抽象為對象,以作為構(gòu)成軟件系統(tǒng)的基礎(chǔ)。7f(1)f(2)數(shù)據(jù)結(jié)構(gòu)簡單類(規(guī)則) + 復(fù)雜聯(lián)系 = 復(fù)雜系統(tǒng) 接口函數(shù)數(shù)據(jù)比較8面向?qū)ο笈c面向過程設(shè)計(jì)對比是一種數(shù)學(xué)思維或計(jì)算機(jī)思維方法,與人們認(rèn)識世界的方法不同以不穩(wěn)定的、多變的“過程”和“操作” 為中心來構(gòu)造系統(tǒng)可重用性較差是建立在認(rèn)識方法學(xué)基礎(chǔ)上的一項(xiàng)技術(shù)科學(xué),比較自然地模擬了人類認(rèn)識客觀世界的方式;以相對穩(wěn)定的“對象” 為中心來構(gòu)造系統(tǒng)可重用性較好面向過程程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)9將設(shè)計(jì)目標(biāo)從模擬現(xiàn)實(shí)世界的行為轉(zhuǎn)向了模擬現(xiàn)實(shí)世界中存在的對象及其各自的行為。 面向?qū)ο蟪绦蛟O(shè)計(jì)
4、是在吸取結(jié)構(gòu)化程序設(shè)計(jì)的一切優(yōu)點(diǎn)的基礎(chǔ)上發(fā)展起來的一種新的程序設(shè)計(jì)方法。它的本質(zhì)是把數(shù)據(jù)和處理數(shù)據(jù)的過程當(dāng)成一個整體對象。在OOP中,將“對象”作為系統(tǒng)中最基本的運(yùn)行實(shí)體,整個程序即由各種不同類型的對象組成,各對象既是一個獨(dú)立的實(shí)體,又可通過消息相互作用,對象中的方法決定要向哪個對象發(fā)消息、發(fā)什么消息以及收到消息時如何進(jìn)行處理等。面向?qū)ο蠹夹g(shù)10對象(Object)對象是客觀世界中的事物在人腦中的映像,這種映像通過對同一類對象的抽象反映成人的意識,并做為一種概念而存在。每個對象都具有屬性(Attribute)和方法(Method)這兩方面的特征。對象的屬性描述了對象的狀態(tài)和特征,對象的方法說明
5、了對象的行為和功能,并且對象的屬性值只應(yīng)由這個對象的方法來讀取和修改,兩者結(jié)合在一起就構(gòu)成了對象的完整描述。 11對象例一例 1:考慮對象 “學(xué)生”,具體描述為:對象名屬性操作學(xué)號、姓名、專業(yè)、性別、年齡、身份證號、電話等等獲取和修改學(xué)號、姓名、專業(yè)、性別、年齡等等學(xué)生( 表一 )注意點(diǎn): 一體性 三者成為一體12對象例二例 2:對象 “課程” 的有關(guān)抽象描述。對象名屬性操作課程課程名、編號、學(xué)時數(shù)、選課要求、任課教師等獲取并修改課程名、編號、學(xué)時數(shù)、選課要求、任課教師等(表二 )注意點(diǎn): 1. 屬性是對對象的靜態(tài)描述. 2. 操作是對對象的動態(tài)描述. 外部是通過調(diào)用服務(wù)與對 象取得聯(lián)系.13
6、類(Class)具有相似屬性和行為的一組對象,就稱為類??梢姡辛祟惖母拍钜院?,就可以對具有共同特征的事物進(jìn)行統(tǒng)一描述類是面向?qū)ο笳Z言必需提供的用戶定義的數(shù)據(jù)類型,它將具有相同狀態(tài)、操作和訪問機(jī)制的多個對象抽象成為一個對象類。14類與對象的關(guān)系從一般意義上講,對象(Object)是現(xiàn)實(shí)世界中的客觀事物。類是把具有相同屬性的事物劃分為一類,從而得出的抽象概念。15類與對象的關(guān)系類與對象的關(guān)系 類 對象 抽象定義 實(shí)例 學(xué)生 學(xué)生王強(qiáng) 汽車 桑塔納,奔馳,寶馬 類型 變量, 如 C 語言中的 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言把數(shù)據(jù)和操作封裝于對象體之中,并提供一種訪問機(jī)制,使對象的“私有數(shù)據(jù)”僅能由這個對象的操作來執(zhí)行。用戶只能通過允許公開的操作提出要求(消息),才能查詢和修改對象的狀態(tài)。18封裝封裝是面向?qū)ο蠓椒ǖ囊粋€重要原則。它有兩個涵義:第一個涵義是,把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨(dú)立單位(即對象)。第二個涵義也稱作“信息隱蔽”,即盡可能隱蔽對象的內(nèi)部細(xì)節(jié),對外形成一個邊界(或者說形成一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系。這主要是指對象的外部不能直接地存取對象的屬性,只能通過幾個允許外部使用的服務(wù)與對象發(fā)生聯(lián)系。f(1)f(2)數(shù)據(jù)結(jié)構(gòu)接口19封裝的例子鍵盤電視機(jī)手機(jī)20面向?qū)ο蠹夹g(shù)的特點(diǎn)(1)以對象為中心。由于對象自然地反映了應(yīng)用領(lǐng)域的模塊性,因此具有相對穩(wěn)定性,可以被用作一個組件去構(gòu)成更復(fù)雜的應(yīng)用,又由于對象一般封裝的是某一實(shí)際需求的各種成分,因此,某一對象的改變對整個系統(tǒng)幾乎沒有影響。(2)封裝性。實(shí)現(xiàn)細(xì)節(jié)隱藏,增強(qiáng)了安全性和簡化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只需要通過外部接口,以特定的訪問權(quán)限,來使用類的成員(3)可復(fù)用性。新的應(yīng)用程
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《脊柱的運(yùn)動解剖》課件
- 第6單元 科技文化與社會生活(A卷·知識通關(guān)練)(解析版)
- 中華傳統(tǒng)文化宣傳教育2
- 雙十二時尚之道
- 駛向輝煌共創(chuàng)精彩
- 音樂制作師勞動合同三篇
- 深部護(hù)理科護(hù)士的工作總結(jié)
- 競選班干部的演講稿模板集錦八篇
- 2023年-2024年安全管理人員安全教育培訓(xùn)試題附答案(A卷)
- 2024年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題附參考答案【突破訓(xùn)練】
- 第二章 粉體制備
- 預(yù)應(yīng)力空心板計(jì)算
- 2024版珠寶鑒定技師勞動合同范本3篇
- GA/T 1740.2-2024旅游景區(qū)安全防范要求第2部分:湖泊型
- 2023年開封糧食產(chǎn)業(yè)集團(tuán)有限公司招聘筆試真題
- 2024年全國“紀(jì)檢監(jiān)察”業(yè)務(wù)相關(guān)知識考試題庫(附含答案)
- 2025年社區(qū)工作者考試試題庫及答案
- 期末檢測卷(三)2024-2025學(xué)年人教PEP版英語四年級上冊(含答案無聽力原文無聽力音頻)
- 2024-2030年中國兒童內(nèi)衣行業(yè)運(yùn)營狀況及投資前景預(yù)測報(bào)告
- 吉首大學(xué)《高等數(shù)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 打印和復(fù)印服務(wù)協(xié)議
評論
0/150
提交評論