![面向?qū)ο蠓治雠c設(shè)計第二章xg_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/40180500-ac35-4320-84fa-bcbf178caf0a/40180500-ac35-4320-84fa-bcbf178caf0a1.gif)
![面向?qū)ο蠓治雠c設(shè)計第二章xg_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/40180500-ac35-4320-84fa-bcbf178caf0a/40180500-ac35-4320-84fa-bcbf178caf0a2.gif)
![面向?qū)ο蠓治雠c設(shè)計第二章xg_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/40180500-ac35-4320-84fa-bcbf178caf0a/40180500-ac35-4320-84fa-bcbf178caf0a3.gif)
![面向?qū)ο蠓治雠c設(shè)計第二章xg_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/40180500-ac35-4320-84fa-bcbf178caf0a/40180500-ac35-4320-84fa-bcbf178caf0a4.gif)
![面向?qū)ο蠓治雠c設(shè)計第二章xg_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/40180500-ac35-4320-84fa-bcbf178caf0a/40180500-ac35-4320-84fa-bcbf178caf0a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、面向面向?qū)ο蠓治鱿蠓治雠c設(shè)計與設(shè)計易國洪2第二章 對象的概念 q2.1 對象的概念 q理解軟件對象的含義q理解對象使用消息進行交流以完成任務(wù)的方式q理解不再需要某對象時會發(fā)生什么(垃圾回收機制)q理解類的含義q理解重用代碼的3q通常公認(rèn)的第一個面向?qū)ο蟮恼Z言是1967年由Dahl和Nygaard在挪威開發(fā)的Simula-67,雖然該語言從來沒有得到大量的擁護者,但是它的概念給后來的語言已很大的啟發(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世界上所有的事物都可以稱為對象。對象可以是有形的如:一臺電視機等。q也可以是無形的如:帳戶、一項記錄等。q一個對象就是一個獨立存在的客觀事物,它由一組屬性和一組操作構(gòu)成。52.2 什么是對象62.2 什么是對象q屬性和操作是對象的兩大要素。屬性是對象靜態(tài)特征的描述,操作是對象動態(tài)特征的描述。對象名也稱為對象標(biāo)識。q如電視的屬性有:品牌、尺寸、重量等。操作有:收視、選臺、音量調(diào)節(jié)等 q在編程術(shù)語中,對象是獨立的模塊,有自己的知識和行為。q可以把軟件對象看作機器人、動物或人。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課程這樣沒有生命的、概念上的對象具有哪些行為有點困難,但如果把課程想象成有生命的事物,可以認(rèn)為課程的行為有:92.2 什么是對象q課程對象的行為有:q允許學(xué)生注冊q確定某個學(xué)生是否注冊了該課程。q告知迄今為止有多少學(xué)生注冊該課程q告知該課程的先修課程是什么?q告知該課程需要多
4、少學(xué)時?q討論具體的軟件對象時,對象的行為(也稱為操作)定義為對象為了訪問屬性值(數(shù)據(jù))和修改/維護屬性值所做的事102.2 什么是對象q對象的所有值集合定義了對象的狀態(tài),因而可以理解操作能夠改變對象狀態(tài)。q對象操作是將對象行為看作對象作為應(yīng)用程序可以被請求的服務(wù)。qJava語言編程實現(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封裝的實質(zhì)是:當(dāng)一個對象執(zhí)行自己的操作時,它對外界隱藏了操作的細(xì)節(jié)343536372.5 封裝38發(fā)現(xiàn)并封裝變化點39404142434445共同點/變化點/抽象類464748492.6 關(guān)聯(lián)、聚合、組合 q 關(guān)聯(lián)是類之間的結(jié)構(gòu)關(guān)系,它描述了一組鏈,鏈?zhǔn)菍ο螅惖膶嵗┲g的連接。它指明一個事物的對象與另一個事務(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ū)ο蟮某绦虮仨氂幸粋€入口點(entry point)。60612.13 垃圾收集q當(dāng)創(chuàng)建對象的程序不再使用該對象了,該怎么辦?q每個對象都要占用內(nèi)存的一個小區(qū)域。qJAVA語言,每個程序都有一個運行時系統(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對象稱作類的實例。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中用操作符表示,它位于對象和原型之間:它們是特殊的對象,編譯器和運行時系統(tǒng)使用它們可提高效率。但是,如果希望語言純粹一些,就應(yīng)避免使用數(shù)組,而可以使用類List來代替。762.18術(shù)語772.19 復(fù)用(重用)代碼q復(fù)用是指多次使用代碼q復(fù)用的目的是:q開發(fā)更快速、簡單q維護更容易q代碼較少,人為錯誤就較少q更強壯的代碼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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智慧城市項目履約擔(dān)保期限與數(shù)據(jù)安全協(xié)議3篇
- 2025年度煤炭運輸合同書(附帶電子簽章功能)
- 二零二五年度高效訴訟離婚協(xié)議撰寫指南
- 2025消防應(yīng)急救援物資采購及倉儲服務(wù)合同2篇
- 二零二五年度離婚協(xié)議書范本:女方離婚后住房安置協(xié)議
- 二零二五年度門衛(wèi)人員突發(fā)事件應(yīng)急預(yù)案合同
- 二零二五年度高校師資力量引進與合作培訓(xùn)合同
- 2025至2030年中國五金機械工具零部件數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年單頭高周波機架項目投資價值分析報告
- 二零二五年度融資租賃服務(wù)協(xié)議書2篇
- 護理人文知識培訓(xùn)課件
- 建筑工程施工安全管理課件
- 2025年春新人教版數(shù)學(xué)七年級下冊教學(xué)課件 7.2.3 平行線的性質(zhì)(第1課時)
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測地理試題(含答案)
- 2025年新合同管理工作計劃
- 統(tǒng)編版八年級下冊語文第三單元名著導(dǎo)讀《經(jīng)典常談》閱讀指導(dǎo) 學(xué)案(含練習(xí)題及答案)
- 風(fēng)光儲儲能項目PCS艙、電池艙吊裝方案
- 《志愿軍-存亡之戰(zhàn)》觀后感小學(xué)生
- 統(tǒng)編小學(xué)《道德與法治》三年級上下冊教材的解讀
- 人教版(2024)英語七年級上冊單詞表
- 產(chǎn)業(yè)鏈競爭關(guān)聯(lián)度
評論
0/150
提交評論