版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
類(lèi)和對(duì)象《C++程序設(shè)計(jì)》課程主講:史永哲學(xué)習(xí)內(nèi)容一、類(lèi)和對(duì)象的概念二、類(lèi)和對(duì)象的定義三、類(lèi)和對(duì)象的使用四、總結(jié)1、面向?qū)ο竺嫦驅(qū)ο螅∣O:OrientedObject)是軟件行業(yè)的新術(shù)語(yǔ),它是為了解決70年代的“軟件危機(jī)”而出現(xiàn)的新的軟件開(kāi)發(fā)方法。面向?qū)ο笫侵敢环N程序設(shè)計(jì)范型,同時(shí)也是一種程序開(kāi)發(fā)的方法。它將對(duì)象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。
一、類(lèi)和對(duì)象的概念面向過(guò)程:強(qiáng)調(diào)處理問(wèn)題的過(guò)程。開(kāi)始順序,階段結(jié)束面向?qū)ο螅豪脤?duì)象間的消息傳遞來(lái)驅(qū)動(dòng)程序的執(zhí)行。對(duì)象0對(duì)象1對(duì)象2對(duì)象3對(duì)象5對(duì)象4優(yōu)點(diǎn):真實(shí)表現(xiàn)客觀世界,對(duì)象間的關(guān)系清晰,對(duì)象間的消息處理高效。不足之處:復(fù)用性較差,無(wú)法真實(shí)描繪客觀世界。一、類(lèi)和對(duì)象的概念一、類(lèi)和對(duì)象的概念2、類(lèi)和對(duì)象的定義:對(duì)象是對(duì)問(wèn)題域中客觀存在的事物的抽象,它是一組屬性和這些屬性上的操作的封裝體。
類(lèi)是具有相同屬性和操作的一組對(duì)象的統(tǒng)一抽象的描述。類(lèi)是對(duì)象的模板,對(duì)象是類(lèi)的實(shí)體。
一、類(lèi)和對(duì)象的概念
對(duì)象=數(shù)據(jù)+數(shù)據(jù)上的操作 程序=(對(duì)象+對(duì)象+對(duì)象+…)+消息
消息:面向?qū)ο笾?,我們稱(chēng)一個(gè)對(duì)象對(duì)另一個(gè)對(duì)象施加的操作為消息(message)。如:對(duì)汽車(chē)對(duì)象,點(diǎn)火、換檔、踩油門(mén)、踩剎車(chē)等,這些施加操作的過(guò)程,稱(chēng)為發(fā)送消息。
對(duì)象具有抽象性、封裝性、繼承性、多態(tài)性四個(gè)特點(diǎn)。一、類(lèi)和對(duì)象的概念(1)對(duì)象的抽象性
抽象是從眾多的事物中抽取出共同的、本質(zhì)性的特征,而舍棄其非本質(zhì)的特征。程序設(shè)計(jì)中對(duì)象的抽象有兩方面,一是對(duì)數(shù)據(jù)的抽象,即是對(duì)象本身屬性的抽象。二是過(guò)程的抽象,即是對(duì)象本身行為的抽象。一、類(lèi)和對(duì)象的概念(2)對(duì)象的封裝性封裝有兩個(gè)含義:一是把對(duì)象的全部屬性和操作結(jié)合在一起,形成一個(gè)不可分割的整體對(duì)象,二是信息隱藏,即這個(gè)整體對(duì)外盡量隱藏它的細(xì)節(jié),只公布一個(gè)有限界面,通過(guò)這個(gè)界面和其它對(duì)象交互。一、類(lèi)和對(duì)象的概念(3)對(duì)象的繼承性特殊類(lèi)的對(duì)象獲得一般類(lèi)的全部屬性與操作,稱(chēng)做特殊類(lèi)對(duì)一般類(lèi)的繼承。被繼承的類(lèi)叫父類(lèi)或基類(lèi),繼承父類(lèi)的類(lèi)叫子類(lèi)或派生類(lèi)。
一、類(lèi)和對(duì)象的概念(4)對(duì)象的多態(tài)性對(duì)象的多態(tài)性指基類(lèi)中定義的屬性或操作被派生類(lèi)繼承后,可以具有不同的數(shù)據(jù)類(lèi)型或表現(xiàn)出不同的行為。一、類(lèi)和對(duì)象的概念例:圓形(circle)的數(shù)據(jù)抽象: intx,y; doubler; 行為抽象: setx();sety();setr();draw();classcircle{private:
intx,y;doubler;public:voidsetx(intm){x=m;}voidsety(intn){y=n;}
voidsetr(intk){y=k;}
voiddraw(){…….}
}
抽象一、類(lèi)和對(duì)象的概念二、類(lèi)和對(duì)象的定義
1、類(lèi)定義形式:class類(lèi)名{ private:
私有類(lèi)成員;
public:
公有類(lèi)成員;
protected:
保護(hù)類(lèi)成員;};數(shù)據(jù)區(qū)代碼區(qū)對(duì)象1二、類(lèi)和對(duì)象的定義例2.1定義一個(gè)類(lèi)classsample{privateintx;public: voidfun()
{......;
}};二、類(lèi)和對(duì)象的定義例2.2定義一個(gè)類(lèi)(類(lèi)外實(shí)現(xiàn)成員函數(shù))classsample{privateintx;public: voidfun();};/*類(lèi)外成員函數(shù)的實(shí)現(xiàn)*/voidsample::fun(){......;}二、類(lèi)和對(duì)象的定義類(lèi)外函數(shù)實(shí)現(xiàn)的格式為:函數(shù)類(lèi)型類(lèi)名::函數(shù)名(參數(shù)表)
{
語(yǔ)句組
;}其中,運(yùn)算符“::”稱(chēng)為作用域分辨符,它指出“函數(shù)名”是屬于“類(lèi)名”的成員函數(shù)。二、類(lèi)和對(duì)象的定義方法1:classA{public: intr,t;};Ax,y;方法2:classB{ intI,j;public: voidSetdata(inta,intb) { I=a;j=b;} voidprint(void) {cout<<I<<‘\t’<<j<<‘\n’;}}b1,b2;二、類(lèi)和對(duì)象的定義2、定義對(duì)象:3、類(lèi)中的構(gòu)造函數(shù):①構(gòu)造函數(shù)是類(lèi)的成員函數(shù),在類(lèi)內(nèi)聲明,可以在類(lèi)體內(nèi)或類(lèi)體外實(shí)現(xiàn)。②構(gòu)造函數(shù)名與類(lèi)名相同。③構(gòu)造函數(shù)無(wú)返回值。④構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí),自動(dòng)調(diào)用,不需要程序員寫(xiě)代碼顯式調(diào)用。二、類(lèi)和對(duì)象的定義例:2.3#include<iostream.h>
classtest{public:
test(){cout<<"counstructorcalled\n";}};testobj1;voidmain(){testobj1;}輸出結(jié)果為:counstructorcalled二、類(lèi)和對(duì)象的定義構(gòu)造函數(shù)的重載:例:2.4#include<iostream.h>
classtest{public:
test(){cout<<"counstructorcalled\n";}test(char*name){cout<<"counstructorcalledname="<<name;}};testobj1;voidmain(){testobj1;textobj2("李平");}輸出結(jié)果為:counstructorcalledconustructorcalledname=李平二、類(lèi)和對(duì)象的定義4、類(lèi)中的析構(gòu)函數(shù)①析構(gòu)函數(shù)名為“~<類(lèi)名>”。如,Calendar類(lèi)的析構(gòu)函數(shù)名為~Calendar。②沒(méi)有參數(shù)和返回值。③析構(gòu)函數(shù)不能重載。④當(dāng)對(duì)象消亡時(shí),系統(tǒng)回收該對(duì)象所占用的內(nèi)存空間前,析構(gòu)函數(shù)會(huì)被自動(dòng)調(diào)用。
二、類(lèi)和對(duì)象的定義例:classBox{
public:
~Box(){cout>>"distroytheobject"}
private:
intwidth,length,depth;};intmain(){Boxb;
deleteb;}輸出:distroytheobject二、類(lèi)和對(duì)象的定義5、類(lèi)使用的幾點(diǎn)說(shuō)明:(1)在類(lèi)的外部,只能訪問(wèn)類(lèi)的公有成員,而不能訪問(wèn)類(lèi)的私有成員或保護(hù)成員。若要訪問(wèn)類(lèi)對(duì)象的私有成員,只能通過(guò)對(duì)象的公有成員函數(shù)來(lái)獲取。(2)
同類(lèi)型的對(duì)象之間可以整體賦值,例如:rr=r,將對(duì)象r的所有成員依次賦給對(duì)象rr的成員,這種賦值與對(duì)象的成員訪問(wèn)權(quán)限無(wú)關(guān)。(3)對(duì)象用作函數(shù)的參數(shù)時(shí),屬于賦值調(diào)用;函數(shù)也可以返回一個(gè)對(duì)象。二、類(lèi)和對(duì)象的定義應(yīng)用://類(lèi)rectangle的定義classrectangle{private:floatwidth,height;public:voidsetwidth(floatx){width=x;}voidsetheight(floaty){height=y;}三、類(lèi)和對(duì)象的使用floatarea(){returnwidth*height;}floatperimeter(){return2*(width+height);}};staticvoidmain(){rectanglerect;rect.setwidth(45);//設(shè)置rectangle的寬度三、類(lèi)和對(duì)象的使用rect.setheight(54.2);//設(shè)置rectangle的高度cout<<"theareaofrectangleis"<<rect.area()<<endl;//輸出矩形面積cout<<"theperimeterofrectangleis"<<rect.perimeter()<<endl;//輸出矩形周長(zhǎng)}輸出結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬科版必修3英語(yǔ)上冊(cè)月考試卷含答案
- 2025年外研版2024選修2地理上冊(cè)階段測(cè)試試卷
- 二零二五版門(mén)衛(wèi)值班人員設(shè)備維護(hù)聘用合同4篇
- 2025年度新能源汽車(chē)電池回收與利用分包合同4篇
- 二零二五年度智能物流解決方案內(nèi)部銷(xiāo)售承包合同4篇
- 二零二五年度木門(mén)行業(yè)環(huán)保標(biāo)準(zhǔn)采購(gòu)合同2篇
- 《包裝設(shè)計(jì)》 案例賞析 第4章 香生記品牌包裝設(shè)計(jì)
- 2025版內(nèi)退員工勞動(dòng)合同范本:食品行業(yè)專(zhuān)用4篇
- 2025年度影視基地租賃合同范本及知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議3篇
- 2025年農(nóng)場(chǎng)農(nóng)業(yè)廢棄物回收利用服務(wù)合同4篇
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀(jì)檢監(jiān)察位崗位常見(jiàn)面試問(wèn)題含HR問(wèn)題考察點(diǎn)及參考回答
- 詢(xún)價(jià)函模板(非常詳盡)
- 《AI營(yíng)銷(xiāo)畫(huà)布:數(shù)字化營(yíng)銷(xiāo)的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類(lèi)易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個(gè)28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫(xiě)話(huà)教學(xué)評(píng)語(yǔ)方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號(hào)表示方法
評(píng)論
0/150
提交評(píng)論