第四章_類與對(duì)象_第1頁
第四章_類與對(duì)象_第2頁
第四章_類與對(duì)象_第3頁
第四章_類與對(duì)象_第4頁
第四章_類與對(duì)象_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四章 類與對(duì)象主講人:楊紅菊主講人:楊紅菊山西大學(xué)計(jì)算機(jī)信息技術(shù)學(xué)院本章目的l掌握面向?qū)ο蟮幕靖拍?;l掌握類與對(duì)象的定義與使用;l正確使用構(gòu)造函數(shù)、析構(gòu)函數(shù)以及類成員函數(shù)與數(shù)據(jù)成員主要內(nèi)容1 類的概念類的概念2 類的定義類的定義3 類成員的訪問控制類成員的訪問控制4 類的成員函數(shù)類的成員函數(shù)5 對(duì)象對(duì)象對(duì)比面向過程與面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的不同。對(duì)比面向過程與面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的不同。描述圓描述圓Circle。面向過程的方法:面向過程的方法:函數(shù)函數(shù)1:求圓的面積:求圓的面積函數(shù)函數(shù)2:求圓的周長(zhǎng):求圓的周長(zhǎng)其它函數(shù)其它函數(shù)主函數(shù):主函數(shù): 定義圓的半徑;定義圓的半徑; 輸入圓的半徑;

2、輸入圓的半徑; 調(diào)用求面積函數(shù);調(diào)用求面積函數(shù); 調(diào)用求周長(zhǎng)函數(shù);調(diào)用求周長(zhǎng)函數(shù); 輸出輸出 面向?qū)ο蟮姆椒ǎ好嫦驅(qū)ο蟮姆椒ǎ侯愵怌ircle私有數(shù)據(jù)成員:私有數(shù)據(jù)成員: 圓的半徑圓的半徑 公有成員函數(shù):公有成員函數(shù): 求圓的面積求圓的面積 求圓的周長(zhǎng)求圓的周長(zhǎng) 顯示圓的半徑顯示圓的半徑 設(shè)定圓的半徑設(shè)定圓的半徑;主函數(shù)主函數(shù) 定義類的對(duì)象;定義類的對(duì)象; 通過對(duì)象調(diào)用相應(yīng)的公有成員函數(shù);通過對(duì)象調(diào)用相應(yīng)的公有成員函數(shù); l面向過程的結(jié)構(gòu)化程序設(shè)計(jì)中,程序的模塊程序的模塊由函數(shù)構(gòu)成的,每個(gè)函數(shù)用于完成特定的功由函數(shù)構(gòu)成的,每個(gè)函數(shù)用于完成特定的功能。數(shù)據(jù)與對(duì)數(shù)據(jù)的操作分離。能。數(shù)據(jù)與對(duì)數(shù)據(jù)的操

3、作分離。l面向?qū)ο蟮某绦蛟O(shè)計(jì)中,程序的模塊由類構(gòu)程序的模塊由類構(gòu)成,類是對(duì)邏輯上相關(guān)的函數(shù)與數(shù)據(jù)的封裝,成,類是對(duì)邏輯上相關(guān)的函數(shù)與數(shù)據(jù)的封裝,它是對(duì)問題的抽象描述。它是對(duì)問題的抽象描述。類的概念l所謂抽象是指對(duì)具體問題進(jìn)行概括,抽出是指對(duì)具體問題進(jìn)行概括,抽出一類對(duì)象的公共屬性并加以描述的過程。一類對(duì)象的公共屬性并加以描述的過程。抽象的過程,也就是對(duì)問題進(jìn)行分析和認(rèn)抽象的過程,也就是對(duì)問題進(jìn)行分析和認(rèn)知的過程。知的過程。l對(duì)一個(gè)問題的抽象包括兩個(gè)方面:數(shù)據(jù)抽象(描述某類對(duì)象的屬性或狀態(tài))行為抽象(描述的某類對(duì)象的共同行為或功能特征)例2:描述時(shí)鐘類時(shí)鐘類時(shí)鐘類 數(shù)據(jù)抽象:數(shù)據(jù)抽象: 時(shí),分,

4、秒時(shí),分,秒 行為抽象:行為抽象: 顯示時(shí)間顯示時(shí)間 設(shè)置時(shí)間設(shè)置時(shí)間例3:描述人類人類人類 數(shù)據(jù)抽象:數(shù)據(jù)抽象: 姓名,年齡,性別姓名,年齡,性別 行為抽象:行為抽象: 吃飯,走路,工作,學(xué)吃飯,走路,工作,學(xué)習(xí)習(xí)l了解了類的概念,那么如何定義一個(gè)類呢?2 類的定義l類的定義分為聲明部分(干什么)聲明部分(干什么)實(shí)現(xiàn)部分(怎么干)實(shí)現(xiàn)部分(怎么干)2 類的定義類的定義例4:時(shí)鐘類定義class Clock private: int Hour, Minute, Second; public: void SetTime(int NewH, int NewM, int NewS); void S

5、howTime();2 類的定義l注意:在類中可以只聲明函數(shù)的原型,函數(shù)的實(shí)現(xiàn)部分可以在類外定義。 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: 保護(hù)性成員 private: 私有成員;3 類成員的訪問控制類成員的訪問控制l通過設(shè)置成員的訪問控制屬性來實(shí)現(xiàn)類成員的訪問權(quán)限。l訪問控制屬性

6、包含以下三種:公有類型(public)保護(hù)類型(protected)私有類型(private)lpublic定義了類的外部接口。lprivate只能被本類的成員函數(shù)訪問,private成員一般在類外不直接進(jìn)行操作,而是通過外部接口(公有函數(shù))來操作類中的數(shù)據(jù)成員。lprotected成員與private成員性質(zhì)相似,其差別在于繼承過程中對(duì)產(chǎn)生的新類的影響不同。注意:注意:l 如果private成員緊接著類的名稱,則關(guān)鍵字private可以省略。l 一般情況下,一個(gè)類的數(shù)據(jù)成員應(yīng)聲明為私有成員。l 書寫時(shí)通常習(xí)慣將公有類型放在最前面,這樣便于閱讀,因?yàn)樗鼈兪峭獠吭L問時(shí)所需了解的。4 類的成員函數(shù)

7、類的成員函數(shù)l成員函數(shù)描述的是類的行為;l成員函數(shù)是程序算法的實(shí)現(xiàn)部分;l成員函數(shù)是對(duì)封裝的數(shù)據(jù)進(jìn)行操作的方法。類的成員函數(shù)的實(shí)現(xiàn)l成員函數(shù)的實(shí)現(xiàn)分兩種:l類內(nèi)實(shí)現(xiàn)(內(nèi)聯(lián)成員函數(shù))l類外實(shí)現(xiàn)(作用域標(biāo)識(shí)符:,指明所屬類)l成員函數(shù)在類外實(shí)現(xiàn)時(shí)分兩部分:類中的函數(shù)的原型聲明+類外的函數(shù)的具體實(shí)現(xiàn)。例5:時(shí)鐘類成員函數(shù)舉例說明class Clock private: int Hour, Minute, Second; public: void SetTime(int NewH, int NewM, int NewS); void ShowTime() coutHour”:”Minute”:”Sec

8、ondendl;/內(nèi)聯(lián)函數(shù)隱式聲明內(nèi)聯(lián)函數(shù)隱式聲明;void Clock:SetTime(int NewH, int NewM, int NewS) Hour=NewH; Minute=NewM; Second=NewS; 5 對(duì)象對(duì)象l類是抽象的,對(duì)象是具體的。類實(shí)際上就是創(chuàng)建對(duì)象的模板。l類與對(duì)象的關(guān)系如:人與某個(gè)人;桌子與某張桌子;形狀與圓;圓與某個(gè)圓;鐘表與某個(gè)鐘表;基本數(shù)據(jù)類型與簡(jiǎn)單變量等等之間的關(guān)系。例6以類Circle為例圖1 類是對(duì)象模板類作為模板類作為模板Circle類的三個(gè)對(duì)象類的三個(gè)對(duì)象對(duì)象的聲明l對(duì)象的聲明:對(duì)象的聲明: 類名類名 對(duì)象名;對(duì)象名;例如 Clock my

9、Clock; Circle a; 人 張三;對(duì)象操作l如何訪問對(duì)象的成員呢?myClock.SetTime(8,30,30);myClock.ShowTime();myClock.hour; 例7:時(shí)鐘類完整程序#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();類的實(shí)現(xiàn)部分類的實(shí)現(xiàn)部分類的定義部分類的定義部分主函數(shù)主函數(shù)分析:類的定義是對(duì)問題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論