




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
會計學1C語言程序設計6對象間的關系(1/7)依賴關系組合關系派生關系集合關系第2頁/共52頁第1頁/共52頁對象間的關系(2/7)什么樣的關系是依賴關系?讀者依賴圖書賣方依賴買方生物依賴食物第3頁/共52頁第2頁/共52頁對象間的關系(3/7)依賴關系:一個事物的變化可能會影響到使用它的另一個事物什么時候用依賴關系描述?A對象的行為需要B對象的參與時例:將B對象用作A對象行為的形參第4頁/共52頁第3頁/共52頁對象間的關系(4/7)什么樣的關系是組合關系?人有兩個眼睛汽車有四個輪胎班級有三十個學生第5頁/共52頁第4頁/共52頁對象間的關系(5/7)組合關系:一個事物包含若干“小”事物,這些事物通常與包含它的事物不是一類什么時候用組合關系描述?A對象擁有若干B對象時例:將B對象用作A對象的屬性第6頁/共52頁第5頁/共52頁對象間的關系(6/7)什么樣的關系是繼承關系?學生是人研究生是學生狗是動物警犬是狗第7頁/共52頁第6頁/共52頁對象間的關系(7/7)繼承關系:一個事物是另一事物的特殊形式什么時候用繼承關系描述?A對象是B對象的特殊表現(xiàn)例:將B對象用作A對象的基類第8頁/共52頁第7頁/共52頁繼承和派生(1/2)如果類A是類B的子集,則可將類A描述為類B的繼承此時,稱類A是類B的派生類,類B是類A的基類通常,派生類不需再次聲明就自動具有基類的所有行為和屬性第9頁/共52頁第8頁/共52頁繼承和派生(2/2)語法:class派生類名:派生方式基類名例:classCar:publicAutomobile第10頁/共52頁第9頁/共52頁思考既然派生類是基類的繼承,那么派生類對象與基類對象是什么關系?每個派生類對象包含一個基類對象第11頁/共52頁第10頁/共52頁思考派生類和基類誰更抽象?派生類和基類誰對應的對象更多?第12頁/共52頁第11頁/共52頁警犬類ver1.0例:PoliceDog1.0基類:Dog voidShow(); voidBay();派生類:PoliceDog voidDetective();第13頁/共52頁第12頁/共52頁思考派生類能使用基類的行為嗎?如何使用?基類能使用派生類的行為嗎?第14頁/共52頁第13頁/共52頁警犬類ver1.1例:PoliceDog1.1基類:Dog unsignedintage;派生類:PoliceDog unsignedintid;第15頁/共52頁第14頁/共52頁思考派生類能直接使用基類的private的屬性嗎?派生類能直接使用基類的protected的屬性嗎?派生類內部能使用基類的什么訪問級別的行為?第16頁/共52頁第15頁/共52頁思考繼承和組合有什么區(qū)別?派生類中包含基類對象,組合類中包含組成對象派生類中未聲明基類對象,但自動包含了基類對象組合類中需主動聲明組成對象第17頁/共52頁第16頁/共52頁接上頁派生類中通過this指針使用基類對象組合類中使用組成對象名使用組成對象第18頁/共52頁第17頁/共52頁總結派生類是基類的擴充組合類是另外一個類,通常這個類與它包含的對象的類沒有直接關系第19頁/共52頁第18頁/共52頁類型兼容規(guī)則(1/1)什么是類型兼容規(guī)則?警犬是狗因此:DogaDog=aPoliceDog;摩托車是交通工具因此:VehicleaVeh=aAutoBike;第20頁/共52頁第19頁/共52頁警犬類ver1.2例:PoliceDog1.2注意本例中的賦值語句第21頁/共52頁第20頁/共52頁思考能把派生類對象賦給基類對象嗎?此時能通過基類對象使用派生類的行為和屬性嗎?能把派生類對象賦給基類對象的引用嗎?能把派生類對象賦給指向基類對象的指針嗎?第22頁/共52頁第21頁/共52頁總結類型兼容規(guī)則是指:在需要基類對象的任何地方,都可以使用公有派生類的對象來替代替代之后,派生類對象就可以作為基類的對象使用,但只能使用從基類繼承的成員第23頁/共52頁第22頁/共52頁總結派生類的對象可以賦值給基類對象派生類的對象可以初始化基類的引用派生類的對象的地址可以賦給指向基類的指針第24頁/共52頁第23頁/共52頁思考為什么能把派生類對象賦給基類對象?本例中派生類對象和它包含的基類對象之間是什么關系?派生類對象的大小和基類有關嗎?第25頁/共52頁第24頁/共52頁派生類對象和基類對象的關系第26頁/共52頁第25頁/共52頁派生類的構造和析構(1/3)派生類不繼承基類的構造函數(shù)和析構函數(shù)?。。。?!那如何構造派生類對象?派生類和基類用各自的構造函數(shù)構造自己這部分派生類和基類誰先構造?第27頁/共52頁第26頁/共52頁派生類的構造和析構(2/3)派生類對象構造原則:先構造基類部分,再構造派生類部分即便是派生類可以直接修改基類的屬性,在構造時也是各自構造各自部分,不要互相干涉第28頁/共52頁第27頁/共52頁警犬類ver1.3例:PoliceDog1.3注意本例中的構造和析構次序第29頁/共52頁第28頁/共52頁思考按什么次序構造?按什么次序析構?第30頁/共52頁第29頁/共52頁警犬類ver1.4例:PoliceDog1.4注意本例中新的構造函數(shù)第31頁/共52頁第30頁/共52頁思考carl的基類部分如何構造?如果想要使用基類的非默認構造函數(shù)怎么辦?第32頁/共52頁第31頁/共52頁派生類的構造和析構(3/3)語法:使用“:”來指定當前對象的基類部分如何構造例:構造函數(shù)(形參表): 基類名(給基類的形參表)第33頁/共52頁第32頁/共52頁思考newPoliceDog的基類部分如何構造?用什么方式指定?第34頁/共52頁第33頁/共52頁思考如果同時擁有派生和組合,如何在構造時指定各自的構造方式?本例中的構造次序如何?本例中的析構次序又如何?第35頁/共52頁第34頁/共52頁派生類的訪問控制(1/5)派生類的繼承方式:公有繼承保護繼承私有繼承第36頁/共52頁第35頁/共52頁派生類的訪問控制(2/5)類的訪問控制:派生類用戶代碼第37頁/共52頁第36頁/共52頁派生類的訪問控制(3/5)公有繼承:派生類用戶代碼第38頁/共52頁第37頁/共52頁派生類的訪問控制(4/5)保護繼承:派生類用戶代碼protected第39頁/共52頁第38頁/共52頁派生類的訪問控制(5/5)私有繼承:派生類用戶代碼privateprivate第40頁/共52頁第39頁/共52頁思考當基類的訪問控制發(fā)生變化時,用戶代碼有什么變化?當基類的訪問控制發(fā)生變化時,派生類如何實現(xiàn)基類提供的功能?第41頁/共52頁第40頁/共52頁作用域分辨(1/4)類名::成員名類名::成員名(參數(shù)表)標識符可見性原則:“新的”掩蔽掉“舊的”第42頁/共52頁第41頁/共52頁作用域分辨(2/4)單繼承同名隱藏:派生類的成員如果和基類成員名相同,則派生類成員將隱藏基類成員第43頁/共52頁第42頁/共52頁思考本例中,carl.Show()是派生類的行為還是基類的行為,為什么?本例中,this->id是派生類的屬性還是基類的屬性,為什么?第44頁/共52頁第43頁/共52頁作用域分辨(3/4)多繼承同名隱藏:派生類的成員如果和多個基類成員名相同,則派生類成員將隱藏所有基類成員第45頁/共52頁第44頁/共52頁思考本例中,carl.Show()哪個類的行為?如何通過當前對象,訪問它的基類的被掩蔽掉的行為?如果SuperDog類沒定義Show(),carl.Show()會怎樣?第46頁/共52頁第45頁/共52頁思考本例中,carl.Dog::Show()怎么解釋?為什么報錯了?第47頁/共52頁第46頁/共52頁作用域分辨(4/4)從一個基類派生出的多繼承的基類的同名隱藏:第48頁/共52頁第47頁/共52頁思考為什么carl.PoliceDog::id和carl.LifeSavingDog::id不相等?第49頁/共52頁第48頁/共52頁總結從同一個基類派生出來的多繼承,在每個派生類中都含有各自的基類部分如果希望多個派生類中只含有一個基類部分,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會場設備租賃合同范本
- 醫(yī)美針劑合同范本
- 創(chuàng)業(yè)課題申報書怎么寫好
- 廠房帶看合同范例
- 午休托管班合同范本
- 廠房排氣安裝合同范本
- 代加工燈具合同范本
- 包辦入學合同范本
- 單位委托印刷合同范本
- 推動農村充電基礎設施發(fā)展計劃
- 2025年中考英語復習熱點話題作文范文
- 二手房傭金協(xié)議
- CJT264-2007 水處理用橡膠膜微孔曝氣器
- 《配電線路旁路作業(yè)工具裝備 第1部分 柔性電纜及連接器》
- 富血小板血漿(PRP)簡介
- 住院患者導管滑脫風險評估表
- 幼兒園大班音樂教案《我們多快樂》
- 《草船借箭》課本劇劇本-4篇
- 2024年山東服裝職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 團播主持人協(xié)議
- 《工傷預防知識教育》課件
評論
0/150
提交評論