




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、面向面向?qū)ο蠓治鱿蠓治雠c設(shè)計(jì)與設(shè)計(jì)易國洪2第二章 對象的概念 q2.1 對象的概念 q理解軟件對象的含義q理解對象使用消息進(jìn)行交流以完成任務(wù)的方式q理解不再需要某對象時會發(fā)生什么(垃圾回收機(jī)制)q理解類的含義q理解重用代碼的3q通常公認(rèn)的第一個面向?qū)ο蟮恼Z言是1967年由Dahl和Nygaard在挪威開發(fā)的Simula-67,雖然該語言從來沒有得到大量的擁護(hù)者,但是它的概念給后來的語言已很大的啟發(fā)。qSmalltalk在20世紀(jì)80年代早期得到了廣泛的使用,20世紀(jì)80年代晚期跟著出現(xiàn)了其他的面向?qū)ο蟮恼Z言如 Objective C,C+,Eiffel等 qJava(1995 Oak)199
2、6年1月發(fā)布第一個Java編譯器qC#(2001)4第二章 對象的概念(續(xù))q2.2 什么是對象q世界上所有的事物都可以稱為對象。對象可以是有形的如:一臺電視機(jī)等。q也可以是無形的如:帳戶、一項(xiàng)記錄等。q一個對象就是一個獨(dú)立存在的客觀事物,它由一組屬性和一組操作構(gòu)成。52.2 什么是對象62.2 什么是對象q屬性和操作是對象的兩大要素。屬性是對象靜態(tài)特征的描述,操作是對象動態(tài)特征的描述。對象名也稱為對象標(biāo)識。q如電視的屬性有:品牌、尺寸、重量等。操作有:收視、選臺、音量調(diào)節(jié)等 q在編程術(shù)語中,對象是獨(dú)立的模塊,有自己的知識和行為。q可以把軟件對象看作機(jī)器人、動物或人。72.2 什么是對象q狀態(tài)
3、/數(shù)據(jù)/屬性q如果記錄一個學(xué)生信息,需要哪些數(shù)據(jù)?q姓名q學(xué)號q出生日期q用于描述對象的數(shù)據(jù)元素稱為屬性。從整體考慮時,對象的屬性值集合定義了對象的狀態(tài)(或條件)。82.2 什么是對象q行為/操作/方法/服務(wù)q學(xué)生和課程這兩個對象各自的行為q學(xué)生的行為(至少是和學(xué)院相關(guān)的行為):q注冊一門課程q取消一門課程q選擇一個導(dǎo)師q課程這樣沒有生命的、概念上的對象具有哪些行為有點(diǎn)困難,但如果把課程想象成有生命的事物,可以認(rèn)為課程的行為有:92.2 什么是對象q課程對象的行為有:q允許學(xué)生注冊q確定某個學(xué)生是否注冊了該課程。q告知迄今為止有多少學(xué)生注冊該課程q告知該課程的先修課程是什么?q告知該課程需要多
4、少學(xué)時?q討論具體的軟件對象時,對象的行為(也稱為操作)定義為對象為了訪問屬性值(數(shù)據(jù))和修改/維護(hù)屬性值所做的事102.2 什么是對象q對象的所有值集合定義了對象的狀態(tài),因而可以理解操作能夠改變對象狀態(tài)。q對象操作是將對象行為看作對象作為應(yīng)用程序可以被請求的服務(wù)。qJava語言編程實(shí)現(xiàn)對象行為時,表示操作的那部分代碼成為方法。然而,嚴(yán)格地說,操作用于指代概念上的行為。112.2 什么是對象12132.2 什么是對象14152.2 什么是對象162.2 什么是對象172.2 什么是對象182.2 什么是對象19202.2 什么是對象212.2 什么是對象222.2 什么是對象232.2 什么是
5、對象24252.2 什么是對象2627282.2 什么是對象292.2 什么是對象302.2 什么是對象312.3相同還是相等322.4 描述對象332.5 封裝q封裝是指對象在操作中隱藏屬性q封裝的實(shí)質(zhì)是:當(dāng)一個對象執(zhí)行自己的操作時,它對外界隱藏了操作的細(xì)節(jié)343536372.5 封裝38發(fā)現(xiàn)并封裝變化點(diǎn)39404142434445共同點(diǎn)/變化點(diǎn)/抽象類464748492.6 關(guān)聯(lián)、聚合、組合 q 關(guān)聯(lián)是類之間的結(jié)構(gòu)關(guān)系,它描述了一組鏈,鏈?zhǔn)菍ο螅惖膶?shí)例)之間的連接。它指明一個事物的對象與另一個事務(wù)的對象間的聯(lián)系。如給定一個連接兩個類的關(guān)聯(lián),可以從一個類的對象聯(lián)系到另一個類的對象。q 聚合
6、是一種特殊類型的關(guān)聯(lián),它描述了整體和部分間的結(jié)構(gòu)關(guān)系。q 組合是緊密形式的聚合,它包含一種擁有關(guān)系。q School與department之間的聚合關(guān)系組合聚合。50515253542.7 圖和樹q圖是對象之間連接的一個任意集合,關(guān)聯(lián)之中的對象常常會形成圖,q聚合之中的對象常常會形成樹。552.9 消息q每個對象都至少與另一個對象聯(lián)系,孤立的對象對任何人來說,都是沒有意義的。q對象一旦建立了聯(lián)系就可以協(xié)作。對象在協(xié)作時要相互發(fā)送消息。q消息就是向?qū)ο蟀l(fā)出的服務(wù)請求,它應(yīng)該含有下述信息:提供服務(wù)的對象標(biāo)識,服務(wù)標(biāo)識、輸入信息和回答信息。562.10 啟動操作q消息啟動操作。q事件啟動操作。572
7、.11 協(xié)作示例582.11 協(xié)作示例592.12 面向?qū)ο蟪绦虻墓ぷ髟韖面向?qū)ο蟮某绦蛟诠ぷ鲿r,要創(chuàng)建對象,把他們連接在一起,讓他們彼此發(fā)送消息,相互協(xié)作。誰啟動這個過程?誰創(chuàng)建第一個對象?q為了解決這個問題,面向?qū)ο蟮某绦虮仨氂幸粋€入口點(diǎn)(entry point)。60612.13 垃圾收集q當(dāng)創(chuàng)建對象的程序不再使用該對象了,該怎么辦?q每個對象都要占用內(nèi)存的一個小區(qū)域。qJAVA語言,每個程序都有一個運(yùn)行時系統(tǒng)(run-time System)它在我們編寫的代碼后面執(zhí)行,執(zhí)行內(nèi)務(wù)操作,如垃圾回收q純面向?qū)ο笳Z言JAVA ,C#,Eiffel,Smalltalk 都有垃圾收集器。622.
8、14 類q類封裝了一組對象的公共屬性。q類是具有相同屬性和服務(wù)的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。q類是描述一組相似對象共有特征的抽象。632.14 類q類和對象的關(guān)系如同一個模具與用這個模具鑄造出來的鑄件之間的關(guān)系。q對象稱作類的實(shí)例。q類的描述語言public class Studentprivate String name;private int studnetId;public String getName()return name;6465662.14類672.15類定義的內(nèi)容682.15類定義的內(nèi)容69702.16 共享數(shù)
9、據(jù)共享操作71722.17 類型732.17 類型742.17 類型q對象和原型的主要區(qū)別是,原型可以與對象相同的方式用作值,但不能給原型發(fā)送消息,給它提供字段,或者以其他方式把它看作對象。qJAVA提供了byte、short、int、long、float、double、char、boolean作為原型類型752.17 類型q數(shù)組在JAVA中用操作符表示,它位于對象和原型之間:它們是特殊的對象,編譯器和運(yùn)行時系統(tǒng)使用它們可提高效率。但是,如果希望語言純粹一些,就應(yīng)避免使用數(shù)組,而可以使用類List來代替。762.18術(shù)語772.19 復(fù)用(重用)代碼q復(fù)用是指多次使用代碼q復(fù)用的目的是:q開發(fā)更快速、簡單q維護(hù)更容易q代碼較少,人為錯誤就較少q更強(qiáng)壯的代碼q每次復(fù)用代碼時,都會重復(fù)測試它,錯誤就會越來越少782.19 復(fù)用(重用)代碼q復(fù)用可以分為如下類別q重用系統(tǒng)中的函數(shù)q重用對象中的方法q重用系統(tǒng)中的類q在系統(tǒ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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民專業(yè)合作社對農(nóng)戶秸稈利用的影響研究
- 朱狄審美發(fā)生論研究
- 未來主義風(fēng)格下的服裝品牌設(shè)計(jì)應(yīng)用研究
- 基于Transformer的腸道息肉影像分割方法研究
- 過渡金屬(鈷-鐵)基異質(zhì)復(fù)合材料的制備及其電解水催化性能研究
- 青苗轉(zhuǎn)讓合同范本
- BaTiO3基無鉛壓電陶瓷的制備、相結(jié)構(gòu)及壓電催化性質(zhì)研究
- 土地看護(hù)合同范本
- 雙包絡(luò)結(jié)構(gòu)設(shè)計(jì)的芳樟醇-PAMAM-玉米醇溶蛋白微納米非織造材料的制備及其芳香抗菌性能研究
- 棉稈板企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 2024年岳陽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 2023新蘇教版六年級下冊科學(xué)學(xué)生活動手冊答案
- 【老齡化背景下商業(yè)銀行養(yǎng)老金融發(fā)展探究文獻(xiàn)綜述3400字】
- 《用戶側(cè)電化學(xué)儲能系統(tǒng)接入配電網(wǎng)技術(shù)規(guī)定》
- 安徽省醫(yī)療保障基金使用違法違規(guī)問題檢查指引2023版
- (幻燈片)湘教版七年級下冊地理復(fù)習(xí)課件
- 食堂油鍋起火演練方案及流程
- 2024年江西電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 醫(yī)療器械銷售渠道管理
- 幼兒園中班跳繩實(shí)施方案及措施
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識點(diǎn)總結(jié)(重點(diǎn)標(biāo)記版)
評論
0/150
提交評論