類和對象類與對象的概念類的聲明和對象的定_第1頁
類和對象類與對象的概念類的聲明和對象的定_第2頁
類和對象類與對象的概念類的聲明和對象的定_第3頁
類和對象類與對象的概念類的聲明和對象的定_第4頁
類和對象類與對象的概念類的聲明和對象的定_第5頁
已閱讀5頁,還剩21頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第8章 類和對象8.1 類與對象的概念 8.2 類的聲明和對象的定義8.3 類的成員函數8.4 對象成員的引用8.5 類和對象的簡單應用示例8.6 類的封裝性和信息隱藏本學期的教學特點與學習方法教學特點課堂講重點、主線。要求記筆記,記重點學會把握講課的重點是一種通用能力。課堂示例與課本的例子不同擴大學習容量。課堂示例會在實驗報告中以實驗內容提供,以便同學們復習。課前課后必須認真看課本內容,消化課堂教學的理論內容。實驗任務與課堂教學同步安排,但不是簡單的驗證課堂教學內容。實驗任務的問題注重概念、引導思考,需要在認真閱讀課本后完成。書面作業注重設計能力的訓練。學習方法課堂上聽懂,注意作筆記;以教材

2、、筆記為參考,完成實驗任務和書面作業;課后對照教材、筆記、實驗報告、書面作業進行復習。面向過程與面向對象:思想方法的不同第一學期的程序設計:注重程序設計步驟面向過程:考慮問題從程序設計運行的“步驟”入手細節的豐富與多樣性,使“設計”成為“藝術”面向對象的程序設計:思想方法的進步從整體到細節,從一般到具體思想方法更貼近人的思維方式觀察一個新事物的過程我們的學校環境:教學區、生活區、休閑區教學區:教學室、實驗室、體育運動設施生活區:宿舍、食堂、店鋪、馬路組織:學院-分院-專業-班級人員:老師、同學本次課重點介紹C+的一種新的數據類型類與對象“類”類型定義的語法規范“對象”的定義與使用的語法規范類與

3、對象的物理意義以類和對象為基礎的程序設計示例例:“時鐘”對象的C+描述時鐘的基本特征時間屬性的數量描述時(hour)分(minute)秒(second)我們可以對時鐘的操作設置時間:調整時間(對hour,minute,second的改變)讀取時間:獲取時間屬性的具體數值( 輸出hour,minute,second )某種時鐘產品有多個-不同的時鐘對象,而這一種時鐘產品就稱為一種時鐘的類型-類int hour;int minute;int second;9:23:42用C+語言的“類”模型描述“時鐘”class Timeprivate:/定義時鐘的基本屬性相當于機械鐘的齒輪int hour, m

4、inute, second;public:/定義時鐘的基本功能void SetTime(int h, int m, int s)/設置時間hour=h;minute=m;second=s;void GetTime(int &h, int &m, int &s)/讀取時間h=hour; m=minute; s=second;從外界對時鐘設置時間:比如時鐘的設置按鈕外界獲取時鐘的時間:比如時鐘的表盤或屏幕class Timeprivate: int hour, minute, second;public:void SetTime(int h, int m, int s)hour=h;minute=

5、m;second=s;void GetTime(int &h, int &m, int &s)h=hour; m=minute; s=second;在類里包含了數據成員和操作數據成員的成員函數,實現了把數據和操作封裝在一起。成員訪問限定符,在定義體開始處如不指定,則默認為私有private。從時鐘的描述形式看類的聲明方法關鍵字類Time類型名成員訪問限定符,以下成員為公有成員public數據成員函數成員類體結束私有成員,只有類內部定義的函數可以訪問。公有成員,類內部、外部定義的函數都可以調用。對象的定義類的定義只是定義了一種類型,說明有這樣一種事物。要創建這個種類的具體事物,需要定義對象。注意

6、:類定義創建了新的數據類型,只是類型說明,還沒有定義存儲空間(變量),并沒有創建實際的對象。創建對象的語法:指定存儲空間 Time t1 ,t2;class Timeprivate: int hour, minute, second;public: void SetTime(int h, int m, int s) hour=h;minute=m;second=s; void GetTime(int &h, int &m, int &s) h=hour; m=minute; s=second; ;類名對象名對象的使用使用對象的方式有三種:整個對象對象的數據成員對象的函數成員;對象成員的使用要受

7、到訪問控制的影響,需要特別注意。使用對象的數據成員只能通過間接方式(調整時鐘的時間、讀出時鐘的時間)Time t1, t2;t1.SetTime(9,23,42);int hh,mm,ss;t1.Gettime(hh,mm,ss);couthh“:”mm“:”ss;coutendl;給對象t1中的私有數據成員hour,minute,second賦值(間接)獲取對象t1中的私有數據成員hour,minute,second的數據(間接)通過調用類的公有成員函數訪問類中的私有成員。思考:為什么不能直接對數據成員賦值和輸出?實驗:一個這樣的程序有什么問題?void main()Time t1, t2;

8、t1.hour=9; t1.minute=23; t1.second=42;coutt1.hour“:”t1.minute“:”t1.second;coutxyz;t1.SetTime(x, y, z);int hh,mm,ss;t1.GetTime(hh,mm,ss);couthh“:”mm“:”ssxyz;t1.SetTime(x, y, z);t1.GetTime(hh,mm,ss);cout“Now time is :”hh“:”mm“:”ssendl;coutyorn;while (yorn=y | yorn=Y);cout“Have a nice day !”23 | hour59

9、 | minute59 | second23 | hour59 | minute59 | secondxyz;t1.SetTime(x, y, z);t1.GetTime(hh,mm,ss);cout“Now time is :”hh“:”mm“:”ssendl;coutyorn;while (yorn=y | yorn=Y);cout“Have a nice day !”endl;簡單應用舉例例8.4,用類的方法進行設計,找出一組整數中的元素的最大值。計算器輸出屏幕1592603in748outmax設想有一種計算器,能存儲一組整數,且能找出其最大值 一種計算器類型:數據屬性:可存儲10個整

10、數的數組,記錄最大值的變量;功能(方法或操作):接收數據、輸出數據、查找最大值、輸出最大數;class Array_max public:void set_value();void show_value();void max_value();void show_max(); private:int array10; int max;簡單應用舉例void Array_max:set_value() for (int k=0;karrayk;void Array_max:show_value() for (int k=0;k10;k+) coutarrayk ;void Array_max:sho

11、w_max() cout“max=”maxendl;void max_value() max=array0; /求最大數算法 for (int k=1;kmax) max=arrayk;class Array_max public:void set_value();void show_value(); void show_max();void max_value(); private:int array10; int max;至此只定義了這種“機器”的規格,還沒有機器實體。下面要建立一個這種機器的“對象”(即實體),并寫出“動作指令”,以完成功能。void main() Array_max arr; arr.set_value(); arr.show_value(); arr.max_value(); arr.show_max();小結:用類方法進行程序設計的步驟確定要解決的問題范圍已知什么,求解什么建立與問題相關的類定義對象操作對象接收已知數據處理已知數據輸出

溫馨提示

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

評論

0/150

提交評論