版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章面向?qū)ο蟮某绦蛟O(shè)計方法面向?qū)ο蟪绦蜷_發(fā)重要內(nèi)容涉及:面向?qū)ο蟮幕纠碚?。面向?qū)ο蟮姆治龇椒?。面向?qū)ο蟮拈_發(fā)發(fā)語言。面向?qū)ο蟮某绦蛟O(shè)計方法。面向?qū)ο蟮臄?shù)據(jù)庫管理方法。1.1設(shè)計的重要特性1.1.1類及其定義對象是客觀事務(wù)的一種軟件描述。而類是對象的一種抽象,類中包含了對象的屬性特性。如圖1-1所示。類的定義涉及:定義對象屬性。定義屬性操作。如整數(shù)類int,字符類char等等。如通過定義:chara,即產(chǎn)生了字符類的一個對象“a”。開發(fā)人員通過自定義類來描述特定的對象。例如可為矩形定義如下名為“Rect”的類:ClassRect{//屬性:floatlength;floatwidth;//操作floatperimeter(floatlength,float(yī)width);floatarea(floatlength,floatwidth);}floatRect::perimater(floatlength,floatwidth)//::表達(dá)類屬關(guān)系{return(2*(length+width));}floatRect::area(float(yī)length,float(yī)width){return(length*width);}在應(yīng)用程序中只需定義:Rectrect1;即生成了一個Rect類的對象rect1。1.1.2封裝是隱藏軟件模塊的內(nèi)部屬性和操作,只通過特定接口與其它模塊交互。封裝的意義在于:提供一種全新的軟件組織方法,適應(yīng)面向?qū)ο蟪绦蛟O(shè)計的規(guī)定。通過隱藏數(shù)據(jù)保護(hù)與管理數(shù)據(jù)。增強(qiáng)程序的可復(fù)用性,減少反復(fù)勞動。1.1.3繼承它反映了客觀事務(wù)之間內(nèi)在的聯(lián)系,在面向?qū)ο蟪绦蛟O(shè)計中具體體現(xiàn)為具有共同特性的類之間的繼承性。若類A與類B具有繼承性,類A是類B的子類,則類A的定義定義包含類B的所有屬性和操作。例如平行四邊形類Para定義如下:classpara{//屬性float(yī)a;floatb;//操作}其子類Rect的定義如下:classRect::para//“:”表達(dá)類Rect是類para的子類{//屬性://操作:floatperimeter(floata,floatb);floatarea(floata,floatb);}floatRect::perimeter(floata,float(yī)b){return(2*(a+b));}floatRect::area(float(yī)a,floatb){return(a*b);}圖1-2所示為一個四邊形類族繼承關(guān)系示意。繼承對于面向?qū)ο蟪绦蛟O(shè)計的重要意義在于:對的反映對象本質(zhì)。增強(qiáng)應(yīng)用程序的可復(fù)用性。實現(xiàn)類接口的一致性。1.1.4多態(tài)性多態(tài)性有重載和類屬兩種表現(xiàn)形式。1.重載是指相同的符號形式可代表不同的功能。運算符的重載是最為常見的重載形式。下面的代碼段實現(xiàn)了運算符“+”對于字符串重載:char*operator+(char*str1,char*str2);//重載函數(shù)據(jù)聲明char*operator+(char*str1,char*str2){return(strcpy(str1,str2));}還支持函數(shù)名重載。例如定義如下兩個比較函數(shù):intcompare(inta,intb);floatcompare(floata,floatb);若在應(yīng)用程序的執(zhí)行體中引用上述函數(shù):intc=compare(2,3);floatc1=compare(2.3,3.5);則編譯系統(tǒng)可根據(jù)參數(shù)的不同匹配相應(yīng)函數(shù)體完畢解決。2.類屬在定義通用類模塊的基礎(chǔ)上,通過參數(shù)標(biāo)記類的實際應(yīng)用。定義形式如下:classquery{Ttype;//隊列屬性和操作的定義……}在應(yīng)用程序中通過下面的形式即可定義整數(shù)隊列query_int和浮點數(shù)隊列query_float:……query(int)query_int;query(float)query_float;……VC1.2.1構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)完畢對象的初始工作。定義特點為:函數(shù)名必須與類名相同。無返回值。例如:classRect{public://構(gòu)造函數(shù)Rect(int,int);//析構(gòu)函數(shù)~Rect();private://屬性:float(yī)length;floatwidth;private://操作floatperimeter(floatlength,floatwidth);float(yī)area(floatlength,floatwidth);}Rect::Rect(inta,intb){length=a;width=b;}floatRect::perimat(yī)er(floatlength,floatwidth)//::表達(dá)類屬關(guān)系{return(2*(length+width));}float(yī)Rect::area(float(yī)length,floatwidth){return(length*width);}在應(yīng)用程序中通過定義:Rectrect1(100,50);即構(gòu)造了長、寬分別為100和50的矩形對象rect1。2.析構(gòu)函數(shù)完畢對象的釋放。定義的特點為:函數(shù)名為類名前加“~”。無返回值。1.2.2類成員的外部屬性Public類型Protected類型Privat(yī)e類型1.2.3類的友員友員的聲明形式如下:friend友員類型友員名;例如為類Rect定義友員函數(shù)GetLength和GetWidth的形式如下:classRect{Public:……friendfloatGetLength(constRect&);friendfloatGetWidth(constRect&);……private:……}floatGetLength(constRect&rect1){return(rect1.Length);}floatGetWidth(constRect&rect1){rfeturn(rect1.Width);}1.2.4虛函數(shù)是類成員函數(shù)的多態(tài)性在繼承中的體現(xiàn)。虛函數(shù)的聲明形式如下:virtual函數(shù)類型函數(shù)名;例如:classRect{public:……private://屬性:floatlength;floatwidth;private://操作virtualfloatperimeter(floatlength,floatwidth);virtualfloatarea(float(yī)length,float(yī)width);}floatRect::perimater(floatlength,floatwidth)//::表達(dá)類屬關(guān)系{return(2*(length+width));}floatRect::area(floatlength,floatwidth){return(length*width);}則可如下定義矩形類Rect的派生類正方形Squ:CalssSqu:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)游戲產(chǎn)業(yè)與虛擬社交娛樂融合研究-洞察分析
- 2025年浙教版九年級物理上冊月考試卷含答案
- 2025年冀少新版八年級化學(xué)下冊階段測試試卷
- 2025年滬科版九年級物理上冊階段測試試卷含答案
- 2025年滬科新版八年級科學(xué)下冊階段測試試卷含答案
- 2025年滬科版九年級地理下冊月考試卷
- 2025年上教版七年級生物下冊階段測試試卷含答案
- 2025年冀少新版八年級科學(xué)下冊階段測試試卷含答案
- 2025年度健康管理系統(tǒng)個人服務(wù)合同4篇
- 2025年浙教版九年級生物下冊月考試卷含答案
- 雞鴨屠宰生產(chǎn)企業(yè)安全風(fēng)險分級管控資料
- 高中物理必修一第六節(jié)共點力的平衡條件及其應(yīng)用課件
- 2020版曼昆版宏觀經(jīng)濟(jì)學(xué)(第十版)課件第3章
- 醫(yī)院感染管理組織架構(gòu)圖
- 《工程招投標(biāo)與合同管理》題庫試題及答案 共5套試卷
- 離子色譜法分析氯化物原始記錄 (1)
- 高等數(shù)學(xué)說課稿PPT課件(PPT 49頁)
- 造影劑腎病概述和性質(zhì)
- 單片機(jī)交通燈系統(tǒng)設(shè)計報告
- 標(biāo)桿房企人力資源體系研究之龍湖
- 招商部人員績效考核辦法最全方案
評論
0/150
提交評論