




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 類與對象主講人:楊紅菊主講人:楊紅菊山西大學計算機信息技術學院本章目的l掌握面向對象的基本概念;l掌握類與對象的定義與使用;l正確使用構造函數、析構函數以及類成員函數與數據成員主要內容1 類的概念類的概念2 類的定義類的定義3 類成員的訪問控制類成員的訪問控制4 類的成員函數類的成員函數5 對象對象對比面向過程與面向對象的程序設計方法的不同。對比面向過程與面向對象的程序設計方法的不同。描述圓描述圓Circle。面向過程的方法:面向過程的方法:函數函數1:求圓的面積:求圓的面積函數函數2:求圓的周長:求圓的周長其它函數其它函數主函數:主函數: 定義圓的半徑;定義圓的半徑; 輸入圓的半徑;
2、輸入圓的半徑; 調用求面積函數;調用求面積函數; 調用求周長函數;調用求周長函數; 輸出輸出 面向對象的方法:面向對象的方法:類類Circle私有數據成員:私有數據成員: 圓的半徑圓的半徑 公有成員函數:公有成員函數: 求圓的面積求圓的面積 求圓的周長求圓的周長 顯示圓的半徑顯示圓的半徑 設定圓的半徑設定圓的半徑;主函數主函數 定義類的對象;定義類的對象; 通過對象調用相應的公有成員函數;通過對象調用相應的公有成員函數; l面向過程的結構化程序設計中,程序的模塊程序的模塊由函數構成的,每個函數用于完成特定的功由函數構成的,每個函數用于完成特定的功能。數據與對數據的操作分離。能。數據與對數據的操
3、作分離。l面向對象的程序設計中,程序的模塊由類構程序的模塊由類構成,類是對邏輯上相關的函數與數據的封裝,成,類是對邏輯上相關的函數與數據的封裝,它是對問題的抽象描述。它是對問題的抽象描述。類的概念l所謂抽象是指對具體問題進行概括,抽出是指對具體問題進行概括,抽出一類對象的公共屬性并加以描述的過程。一類對象的公共屬性并加以描述的過程。抽象的過程,也就是對問題進行分析和認抽象的過程,也就是對問題進行分析和認知的過程。知的過程。l對一個問題的抽象包括兩個方面:數據抽象(描述某類對象的屬性或狀態)行為抽象(描述的某類對象的共同行為或功能特征)例2:描述時鐘類時鐘類時鐘類 數據抽象:數據抽象: 時,分,
4、秒時,分,秒 行為抽象:行為抽象: 顯示時間顯示時間 設置時間設置時間例3:描述人類人類人類 數據抽象:數據抽象: 姓名,年齡,性別姓名,年齡,性別 行為抽象:行為抽象: 吃飯,走路,工作,學吃飯,走路,工作,學習習l了解了類的概念,那么如何定義一個類呢?2 類的定義l類的定義分為聲明部分(干什么)聲明部分(干什么)實現部分(怎么干)實現部分(怎么干)2 類的定義類的定義例4:時鐘類定義class Clock private: int Hour, Minute, Second; public: void SetTime(int NewH, int NewM, int NewS); void S
5、howTime();2 類的定義l注意:在類中可以只聲明函數的原型,函數的實現部分可以在類外定義。 void Clock:SetTime(int NewH, int NewM, int NewS) Hour=NewH; Minute=NewM; Second=NewS; void Clock:ShowTime() coutHour”:”Minute”:”Secondendl;2 類的定義class 類名稱 public: 外部接口 protected: 保護性成員 private: 私有成員;3 類成員的訪問控制類成員的訪問控制l通過設置成員的訪問控制屬性來實現類成員的訪問權限。l訪問控制屬性
6、包含以下三種:公有類型(public)保護類型(protected)私有類型(private)lpublic定義了類的外部接口。lprivate只能被本類的成員函數訪問,private成員一般在類外不直接進行操作,而是通過外部接口(公有函數)來操作類中的數據成員。lprotected成員與private成員性質相似,其差別在于繼承過程中對產生的新類的影響不同。注意:注意:l 如果private成員緊接著類的名稱,則關鍵字private可以省略。l 一般情況下,一個類的數據成員應聲明為私有成員。l 書寫時通常習慣將公有類型放在最前面,這樣便于閱讀,因為它們是外部訪問時所需了解的。4 類的成員函數
7、類的成員函數l成員函數描述的是類的行為;l成員函數是程序算法的實現部分;l成員函數是對封裝的數據進行操作的方法。類的成員函數的實現l成員函數的實現分兩種:l類內實現(內聯成員函數)l類外實現(作用域標識符:,指明所屬類)l成員函數在類外實現時分兩部分:類中的函數的原型聲明+類外的函數的具體實現。例5:時鐘類成員函數舉例說明class Clock private: int Hour, Minute, Second; public: void SetTime(int NewH, int NewM, int NewS); void ShowTime() coutHour”:”Minute”:”Sec
8、ondendl;/內聯函數隱式聲明內聯函數隱式聲明;void Clock:SetTime(int NewH, int NewM, int NewS) Hour=NewH; Minute=NewM; Second=NewS; 5 對象對象l類是抽象的,對象是具體的。類實際上就是創建對象的模板。l類與對象的關系如:人與某個人;桌子與某張桌子;形狀與圓;圓與某個圓;鐘表與某個鐘表;基本數據類型與簡單變量等等之間的關系。例6以類Circle為例圖1 類是對象模板類作為模板類作為模板Circle類的三個對象類的三個對象對象的聲明l對象的聲明:對象的聲明: 類名類名 對象名;對象名;例如 Clock my
9、Clock; Circle a; 人 張三;對象操作l如何訪問對象的成員呢?myClock.SetTime(8,30,30);myClock.ShowTime();myClock.hour; 例7:時鐘類完整程序#includeusing namespace std;class Clock public: void SetTime(int NewH=0, int NewM=0, int NewS=0); void ShowTime(); private: int Hour, Minute, Second;;void Clock : SetTime(int NewH, int NewM, int NewS) Hour=NewH; Minute=NewM; Second=NewS;void Clock : ShowTime() coutHour:Minute:Second;int main() Clock myClock; myClock.SetTime(8,30,30); myClock.ShowTime();類的實現部分類的實現部分類的定義部分類的定義部分主函數主函數分析:類的定義是對問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關注行業發展熱點的2025年市場營銷理論考試試題及答案
- 2025年醫學專業執業考試試卷及答案
- 2025年心理測量與評估方法綜合考核試題及答案
- 2025年現代藝術與文化創新的考試試題及答案
- 2025年心理咨詢師資格考試試卷及答案
- 2025年水資源管理與保護課程考試卷及答案
- 2025年人工智能與機器學習基礎試卷及答案
- 北師大版(2024)七年級下冊英語期末復習:Unit1~6語法練習100題(含答案)
- 2025年建筑設計基礎知識測試卷及答案
- 2025年建筑經濟與管理綜合能力考試試卷及答案
- 安全輸液護理管理
- 2025化工安全考試題庫及答案
- T/CECS 10011-2022聚乙烯共混聚氯乙烯高性能雙壁波紋管材
- 2025屆江蘇省宿遷市名校八下數學期末檢測試題含解析
- 中南財經政法大學《編譯原理》2023-2024學年第二學期期末試卷
- 高考報考志愿協議書
- 玉環金鑫塑膠有限公司年產350萬口不粘鍋生產線技改項目環境影響報告書
- 2025AI時代健康睡眠白皮書
- MicroLED顯示技術產業化項目可行性研究報告(范文模板)
- 2025浙江中考:生物必背知識點
- 2025年國家開放大學《會計案例分析》形成性考核123答案+終結性考核答案
評論
0/150
提交評論