面向?qū)ο蟪绦蛟O(shè)計(jì)概述課件_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)概述課件_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)概述課件_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)概述課件_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)概述課件_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言指令序號(hào)機(jī)器語(yǔ)言程序指令功能11011000000001000把數(shù)字8送到累加器AL中20000010000001001AL中的內(nèi)容與數(shù)字9相加,結(jié)果存入累加器AL311110100停止操作 機(jī)器語(yǔ)言是由一連串機(jī)器指令序列形成的程序設(shè)計(jì)工具。編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言指令序號(hào)編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言 匯編語(yǔ)言是機(jī)器語(yǔ)言的符號(hào)化表示。語(yǔ)句序號(hào)匯編語(yǔ)言程序語(yǔ)句

2、功能1MOV AL,8把數(shù)字8送到累加器AL中2ADD AL,9AL中的內(nèi)容與數(shù)字9相加,結(jié)果存入累加器AL3HLT停止操作編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言 匯編語(yǔ)編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言 高級(jí)語(yǔ)言采用人類(lèi)語(yǔ)言和表達(dá)習(xí)慣的符號(hào)和表達(dá)式來(lái)編制程序C語(yǔ)言程序main() int al; al=8+9; printf(“%dn”,al);編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言 ?編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言?編程語(yǔ)言的發(fā)展史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο笳Z(yǔ)言第一章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述面向?qū)ο笏枷氲挠蓙?lái)面向?qū)ο蟪?/p>

3、序設(shè)計(jì)語(yǔ)言面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟪绦虻奶匦悦嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)第一章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述面向?qū)ο笏枷氲挠蓙?lái)面向?qū)ο蟪绦?.1 面向?qū)ο笏枷氲挠蓙?lái) 軟件危機(jī)首次爆發(fā)于二十世紀(jì)六十年代。在大型程序設(shè)計(jì)中,人們發(fā)現(xiàn)投入大量的人力、物力、時(shí)間開(kāi)發(fā)出的軟件,其成本、效率、質(zhì)量等方面卻處于失控狀態(tài),尤其軟件維護(hù)異常困難。程序的修改擴(kuò)充往往需要大量重復(fù)性投入。軟件危機(jī)1.1 面向?qū)ο笏枷氲挠蓙?lái) 軟件危機(jī)首次爆發(fā)于二十世1.1 面向?qū)ο笏枷氲挠蓙?lái)軟件危機(jī)產(chǎn)生的原因2 軟件是一種邏輯產(chǎn)品而非物理產(chǎn)品,軟件的開(kāi)發(fā)過(guò)程本質(zhì)上是人的思考過(guò)程。3 人的智力在面對(duì)越來(lái)越復(fù)雜的問(wèn)題時(shí),處理問(wèn)題的效率會(huì)越來(lái)越低。1 軟件

4、開(kāi)發(fā)者不熟悉用戶問(wèn)題的領(lǐng)域,或沒(méi)有理解用戶需求,軟件產(chǎn)品與要求不一致。1.1 面向?qū)ο笏枷氲挠蓙?lái)軟件危機(jī)產(chǎn)生的原因2 軟件是一種 程序設(shè)計(jì)范型 語(yǔ)言支持結(jié)構(gòu)化程序設(shè)計(jì)(SP)Structure Programming Pascal、 C 面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)Object Oriented Programming C+、Java1.1 面向?qū)ο笏枷氲挠蓙?lái) 程序設(shè)計(jì)范型 語(yǔ)言支持結(jié)構(gòu)化程序設(shè)計(jì)程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法和單入單出的控制結(jié)構(gòu)。這種設(shè)計(jì)方法的著眼點(diǎn)是面向過(guò)程的,特點(diǎn)是將數(shù)據(jù)與程序分開(kāi)存儲(chǔ),即數(shù)據(jù)與數(shù)據(jù)處理分離。1.1

5、面向?qū)ο笏枷氲挠蓙?lái)結(jié)構(gòu)化程序設(shè)計(jì)程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)化程序結(jié)構(gòu)化程序設(shè)計(jì)1.1 面向?qū)ο笏枷氲挠蓙?lái)模塊 22.12.2模塊 11.21.11.31.3.11.3.21.3.3模塊 33.13.23.1.13.1.2 程 序結(jié)構(gòu)化程序設(shè)計(jì)1.1 面向?qū)ο笏枷氲挠蓙?lái)模塊 22.12. 例如:輸入一組整數(shù),統(tǒng)計(jì)正整數(shù)和負(fù)整數(shù)的個(gè)數(shù)。按照結(jié)構(gòu)化程序設(shè)計(jì)的思想,可以將其拆分為以下的子任務(wù):1. 讀入數(shù)據(jù);2.統(tǒng)計(jì)正數(shù)、負(fù)數(shù)的個(gè)數(shù); 3. 輸出結(jié)果; 正整數(shù)個(gè)數(shù)為0;負(fù)整數(shù)個(gè)數(shù)0; 取第一個(gè)整數(shù):1 如果該數(shù)大于 0,正整數(shù)個(gè)數(shù)加1;2 如果該數(shù)小于0,負(fù)整數(shù)個(gè)數(shù)加1;3 取下一個(gè)整數(shù);重復(fù)

6、至統(tǒng)計(jì)完 例如:輸入一組整數(shù),統(tǒng)計(jì)正整數(shù)和負(fù)整數(shù)的個(gè)數(shù)例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)學(xué)生的信息。包括學(xué)號(hào)、姓名、某門(mén)課的平時(shí)成績(jī)、期末成績(jī)、總評(píng)成績(jī)和名次。typedef struct studentScore char number10; /學(xué)號(hào) char name10; /姓名 int dailyScore ; /平時(shí)成績(jī) int finalScore; /期末成績(jī) float generalScore; /總評(píng)成績(jī) int place; /名次 SS; /結(jié)構(gòu)體類(lèi)型名例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)學(xué)生的信息。包例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)

7、學(xué)生的信息。主要操作:成績(jī)的錄入、計(jì)算、排名、輸出。總評(píng)成績(jī)=平時(shí)成績(jī)*0.3+期末成績(jī)*0.7。操作數(shù)據(jù)的幾個(gè)函數(shù):void readData(SS stu ,int n); /輸入n個(gè)學(xué)生的學(xué)號(hào)、姓名、平時(shí)及期末成績(jī)void calcuScore(SS stu ,int n); /計(jì)算n個(gè)學(xué)生的總評(píng)成績(jī)void sortScore(SS stu ,int n);/根據(jù)總評(píng)成績(jī)排名,得出每個(gè)學(xué)生的place值void printOut(SS stu ,int n); /按一定的格式輸出n個(gè)學(xué)生的完整信息例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)學(xué)生的信息。操現(xiàn)在,需求改變了:在C語(yǔ)言課程

8、中,需要增加實(shí)驗(yàn)成績(jī)這一項(xiàng),學(xué)生的總評(píng)成績(jī)計(jì)算方法修改為:總評(píng)成績(jī)=平時(shí)成績(jī)*0.2+實(shí)驗(yàn)成績(jī)*0.2+期末成績(jī)*0.6。顯然,類(lèi)型SS中需要增加一個(gè)數(shù)據(jù)項(xiàng)int experiScore; 表示實(shí)驗(yàn)成績(jī)。同時(shí),所有的函數(shù)代碼都應(yīng)該作相應(yīng)地修改 例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)學(xué)生的信息?,F(xiàn)在,需求改變了:例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若缺點(diǎn)以過(guò)程為中心,打破事物間的相互關(guān)聯(lián),給后續(xù)開(kāi)發(fā)帶來(lái)困難可重用性差可維護(hù)性差1.1 面向?qū)ο笏枷氲挠蓙?lái)結(jié)構(gòu)化程序設(shè)計(jì)缺點(diǎn)以過(guò)程為中心,打破事物間的相互關(guān)聯(lián),給后續(xù)開(kāi)發(fā)帶來(lái)困難 面向?qū)ο蠹夹g(shù)追求的是軟件系統(tǒng)對(duì)現(xiàn)實(shí)世界的直接模擬,盡量實(shí)現(xiàn)將

9、現(xiàn)實(shí)世界中的事物直接映射到軟件系統(tǒng)的解空間。1.1 面向?qū)ο笏枷氲挠蓙?lái) 面向?qū)ο蠹夹g(shù)追求的是軟件系統(tǒng)對(duì)現(xiàn)實(shí)世界的直物質(zhì): 一輛白色 的自行車(chē)意識(shí): 自行車(chē)具體事物: “對(duì)象” 自行車(chē)類(lèi)的實(shí)例抽象概念: “類(lèi)” 自行車(chē)類(lèi)現(xiàn)實(shí)問(wèn)題空間面向?qū)ο蠼饪臻g1.1 面向?qū)ο笏枷氲挠蓙?lái)抽象性事物共有的屬性和狀態(tài)事物共有的行為或功能物質(zhì):具體事物:現(xiàn)實(shí)問(wèn)題空間面向?qū)ο蠼饪臻g1.1 面向?qū)ο髥?wèn)題空間:企業(yè)員工工資管理系統(tǒng)員工類(lèi)工作編號(hào);姓名;基本工資;出勤率;設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;類(lèi)名設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;設(shè)置基本工資;查詢基本工資

10、;計(jì)算實(shí)發(fā)工資;操作設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;屬性設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;工作編號(hào);姓名;基本工資;出勤率;設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;工作編號(hào);姓名;基本工資;出勤率; 數(shù)據(jù)抽象 :int m_iStaffNum / 工作編號(hào) char m_pName / 姓名 float m_fBasicSal / 基本工資 float m_fRateOfAttend / 出勤率 行為抽象 :SetBasicSal ( ) / 設(shè)置基本工資 GetBasicSal ( ) / 查詢基本工資 CalculateSal( ) / 計(jì)算實(shí)際發(fā)放工資 問(wèn)題空間:企業(yè)

11、員工工資管理系統(tǒng)員工類(lèi)工作編號(hào);設(shè)置基本工資;class SS private: char number10; char name10; int dailyScore; int finalScore ; float generalScore; int place ; public: void readData( );void calcuScore( );void printOut( ); friend void sortScore(SS stu ,int n) ; ; 例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)學(xué)生的信息。class SS public: 例如:一個(gè)簡(jiǎn)單的學(xué)此時(shí)的主函數(shù)代碼

12、為:void main( ) SS stu30; /定義30個(gè)學(xué)生類(lèi)的對(duì)象 int i, n=5; /對(duì)前5個(gè)學(xué)生執(zhí)行下列操作 for (i=0;in; i+) stui.readData( ); for (i=0;in; i+) stui.calcuScore( ); sortScore( stu,5) ; for (i=0;in;i+) stui.printOut( ); 若在類(lèi)SS中增加 int experiScore; 表示實(shí)驗(yàn)成績(jī),總評(píng)成績(jī)計(jì)算方法改變,則類(lèi)的成員函數(shù)代碼需做相應(yīng)地改造,但主函數(shù)的代碼不需做任何變動(dòng)。例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理若干個(gè)學(xué)生的信息。程序=對(duì)象

13、+消息此時(shí)的主函數(shù)代碼為:例如:一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)用來(lái)管理1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 一般意義上的對(duì)象指的是一個(gè)實(shí)體的實(shí)例,在這個(gè)實(shí)體中包括了特定的數(shù)據(jù)和對(duì)這些數(shù)據(jù)的操作。1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object)封裝的實(shí)體 = 數(shù)據(jù)+方法(操作)數(shù)據(jù):屬性或狀態(tài)方法:作用于數(shù)據(jù)上的操作封裝:屬性的訪問(wèn)和變化通過(guò)方法完成每個(gè)對(duì)象由對(duì)象標(biāo)識(shí)符唯一標(biāo)識(shí)1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object)封裝的實(shí)體 圓圓心位置半徑顏色移動(dòng)面積對(duì)象名屬性操作1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object)r圓圓心位置移動(dòng)對(duì)象名屬性

14、操作1.2 面向?qū)ο蟮幕靖拍顚?duì)象1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)1. 以數(shù)據(jù)為中心。 對(duì)象是由數(shù)據(jù)及有權(quán)對(duì)這些數(shù)據(jù)施加的操作組成的統(tǒng)一體,這些操作圍繞著對(duì)其數(shù)據(jù)所需進(jìn)行的處理來(lái)設(shè)置,操作的結(jié)果也與這些數(shù)據(jù)的值相關(guān)。1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)11.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)2. 對(duì)象是主動(dòng)的。 對(duì)象是進(jìn)行處理的主體。當(dāng)系統(tǒng)需要完成某對(duì)象內(nèi)部的某個(gè)操作時(shí),不能從外部直接加工該對(duì)象自己的數(shù)據(jù),而是必須通過(guò)公共接口向該對(duì)象發(fā)消息,請(qǐng)求該對(duì)象執(zhí)行某個(gè)操作,處理相關(guān)的數(shù)據(jù)。1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)21.2 面

15、向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)3. 實(shí)現(xiàn)了數(shù)據(jù)封裝。 對(duì)象的數(shù)據(jù)和操作完全被封裝在對(duì)象的內(nèi)部,對(duì)外是隱蔽、不可見(jiàn)的。對(duì)對(duì)象內(nèi)部數(shù)據(jù)的訪問(wèn)和處理只能通過(guò)共有的操作進(jìn)行。1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)31.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)4. 本質(zhì)上具有并行性。 不同對(duì)象各自獨(dú)立地處理自身的數(shù)據(jù),彼此通過(guò)發(fā)消息傳遞信息完成通信。1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)41.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)5. 模塊性好。 對(duì)象是面向?qū)ο筌浖到y(tǒng)的基本模塊,對(duì)象的操作圍繞著對(duì)其內(nèi)部數(shù)據(jù)所需進(jìn)行的處理來(lái)設(shè)置,沒(méi)有無(wú)關(guān)的操作。

16、1.2 面向?qū)ο蟮幕靖拍顚?duì)象(object) 特點(diǎn)51.2 面向?qū)ο蟮幕靖拍顚傩裕ˋttribute) 描述對(duì)象靜態(tài)特征的數(shù)據(jù)項(xiàng)種類(lèi) 公有(public)保護(hù)(protected)私有(private)1.2 面向?qū)ο蟮幕靖拍顚傩裕ˋttribute) 描述1.2 面向?qū)ο蟮幕靖拍罘椒?Method) 描述對(duì)象的動(dòng)態(tài)特征或行為是對(duì)象與外界的接口作用 改變對(duì)象的屬性返回對(duì)象的屬性object 1object 21.2 面向?qū)ο蟮幕靖拍罘椒?Method) 描述對(duì)象的1.2 面向?qū)ο蟮幕靖拍?操作的方式 以某種方式操縱數(shù)據(jù)的操作(如增、刪、 查詢、選擇); 完成某種計(jì)算的操作; 為控制

17、事件的發(fā)生而監(jiān)控對(duì)象的操作。方法(Method)1.2 面向?qū)ο蟮幕靖拍?操作的方式方法(Method)1.2 面向?qū)ο蟮幕靖拍铑?lèi)(class)r1r2r3 類(lèi)是對(duì)具有相同屬性和方法的一組相似對(duì)象的抽象描述。obj1obj2obj31.2 面向?qū)ο蟮幕靖拍铑?lèi)(class)r1r2r3 1.2 面向?qū)ο蟮幕靖拍钭孕熊?chē)對(duì)象數(shù)據(jù)抽象自行車(chē)類(lèi)屬性:架子尺寸 車(chē)輪尺寸 顏色 原材料操作:轉(zhuǎn)彎 移動(dòng) 修理1.2 面向?qū)ο蟮幕靖拍钭孕熊?chē)對(duì)象數(shù)據(jù)抽象自行車(chē)類(lèi)屬性:1.2 面向?qū)ο蟮幕靖拍铑?lèi)(class)類(lèi)與對(duì)象的關(guān)系類(lèi)是對(duì)象的抽象對(duì)象是類(lèi)的實(shí)例1.2 面向?qū)ο蟮幕靖拍铑?lèi)(class)類(lèi)與對(duì)象的關(guān)

18、系1.2 面向?qū)ο蟮幕靖拍罱處?教師2教師3教師N屬性: 行為:教師號(hào) 獲取教師號(hào)姓名 獲取姓名年齡 獲取年齡 職稱 獲取職稱對(duì)象(教師1)對(duì)象(教師2)對(duì)象(教師3)對(duì)象(教師N)教師群體教師類(lèi)對(duì)象1.2 面向?qū)ο蟮幕靖拍罱處?屬性: 行1.2 面向?qū)ο蟮幕靖拍铑?lèi)(class) 對(duì)于同一類(lèi)的不同實(shí)例之間,必定具有: 相同的操作集合 相同的屬性集合 不同的對(duì)象名稱1.2 面向?qū)ο蟮幕靖拍铑?lèi)(class) 對(duì)于同一類(lèi)1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage) 消息對(duì)象之間相互請(qǐng)求或相互協(xié)作的途徑,是要求某個(gè)對(duì)象執(zhí)行其中某個(gè)功能操作的規(guī)格的說(shuō)明。object 1object 2發(fā)送方

19、接收方1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage) 1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)消息有三部分組成:接收消息的對(duì)象消息名零個(gè)或多個(gè)變?cè)纾篗yCircle.Show(Red)1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)消息有三部1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)同一對(duì)象可接收不同形式的多個(gè)消息,產(chǎn)生不同的響應(yīng);同一個(gè)消息可以發(fā)給不同的對(duì)象,所做出的響應(yīng)可以截然不同;發(fā)送方不需要知道接受方如何對(duì)請(qǐng)求予以響應(yīng)的。1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)同一對(duì)象可1.3 面向?qū)ο蟪绦虻奶匦?. 封裝性圓圓圓心位置半徑顏色移動(dòng)面積接口1.3 面向?qū)ο蟪绦?/p>

20、的特性1. 封裝性圓圓接口1.3 面向?qū)ο蟪绦虻奶匦?. 封裝性一個(gè)清楚的邊界,封裝的基本單位是對(duì)象;具有確定接口,這個(gè)接口描述該對(duì)象與其他對(duì)象之間的相互作用;受保護(hù)的內(nèi)部實(shí)現(xiàn),提供對(duì)象的相應(yīng)軟件功能細(xì)節(jié)。object封裝性的條件:1.3 面向?qū)ο蟪绦虻奶匦?. 封裝性一個(gè)清楚的邊界,封裝1.3 面向?qū)ο蟪绦虻奶匦詂lass CCompanyStaff /封裝單元(類(lèi))/* 行為封裝 */public: /外部接口標(biāo)志void SetBasicSal( float ); /設(shè)置基本工資 float GetBasicSal ( void ); /查詢基本工資float CalculateSal(

21、 float, float ); /計(jì)算實(shí)際發(fā)放工資 /* 數(shù)據(jù)封裝 */private: /內(nèi)部隱藏標(biāo)志int m_iStaffNum; /工作編號(hào)char m_pName ; /姓名float m_fRateOfAttend; /出勤率float m_fBasicSal ; /基本工資; 1.3 面向?qū)ο蟪绦虻奶匦詂lass CCompanySt1.3 面向?qū)ο蟪绦虻奶匦杂行У膶?shí)現(xiàn)了信息隱藏,真正實(shí)現(xiàn)了軟件的模塊化。減小了內(nèi)外修改相互的影響,提高了軟件的可維護(hù)性。作用:1. 封裝性1.3 面向?qū)ο蟪绦虻奶匦杂行У膶?shí)現(xiàn)了信息隱藏,真正實(shí)現(xiàn)了1.3 面向?qū)ο蟪绦虻奶匦?. 繼承性繼承性是父類(lèi)和

22、子類(lèi)之間共享數(shù)據(jù)和方法的機(jī)制;繼承性具有傳遞性;繼承性包括單繼承和多重繼承。 子類(lèi)繼承部分個(gè)性部分父類(lèi)共性部分1.3 面向?qū)ο蟪绦虻奶匦?. 繼承性繼承性是父類(lèi)和子類(lèi)之1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除、著色等共性:移動(dòng)、擦除、著色等特性:面積的計(jì)算2. 繼承性1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除1.3 面向?qū)ο蟪绦虻奶匦詥卫^承多重繼承設(shè)備輸出設(shè)備I/O設(shè)備輸入設(shè)備2. 繼承性1.3 面向?qū)ο蟪绦虻奶匦詥卫^承多重繼承設(shè)備輸出設(shè)備I/O1.3 面向?qū)ο蟪绦虻奶匦匀斯と?. 繼承性學(xué)生教師農(nóng)民小學(xué)生中學(xué)生大學(xué)生研究生助教講師教授1.3 面向?qū)ο蟪绦虻奶?/p>

23、性人工人2. 繼承性學(xué)生教師農(nóng)民小1.3 面向?qū)ο蟪绦虻奶匦郧逦w現(xiàn)相關(guān)類(lèi)間層次結(jié)構(gòu)關(guān)系;減小代碼和數(shù)據(jù)的重復(fù)冗余度,增加程序的重用性;通過(guò)增強(qiáng)一致性來(lái)減少模塊間的接口和界面,增加易維護(hù)性;自動(dòng)傳播代碼;構(gòu)建擴(kuò)充新類(lèi)的有效手段。優(yōu)點(diǎn):2. 繼承性1.3 面向?qū)ο蟪绦虻奶匦郧逦w現(xiàn)相關(guān)類(lèi)間層次結(jié)構(gòu)關(guān)系;優(yōu)1.3 面向?qū)ο蟪绦虻奶匦?. 多態(tài)性 不同的對(duì)象收到同一個(gè)消息可產(chǎn)生完全不同的效果,這一現(xiàn)象叫做多態(tài)。大學(xué)生中學(xué)生繼承計(jì)算成績(jī)計(jì)算成績(jī)語(yǔ)文數(shù)學(xué)英語(yǔ)高等數(shù)學(xué)計(jì)算機(jī)普通物理1.3 面向?qū)ο蟪绦虻奶匦?. 多態(tài)性 不同1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除、著色等面積=邊長(zhǎng)2面積

24、=PI*r23. 多態(tài)性1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除1.3 面向?qū)ο蟪绦虻奶匦栽鰪?qiáng)了操作的透明性、可理解性和可擴(kuò)展性;增強(qiáng)了軟件的靈活性和重用性。作用:3. 多態(tài)性1.3 面向?qū)ο蟪绦虻奶匦栽鰪?qiáng)了操作的透明性、可理解性和可1.4 面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟪绦蛟O(shè)計(jì)經(jīng)歷的幾個(gè)階段:面向?qū)ο蠓治觯∣OA)面向?qū)ο笤O(shè)計(jì)(OOD)面向?qū)ο缶幊蹋∣OP)面向?qū)ο鬁y(cè)試(OOT)1.4 面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟪绦蛟O(shè)計(jì)經(jīng)歷的幾個(gè)階段:面一個(gè)簡(jiǎn)單圖形程序的需求: 在顯示器熒光屏上圓心坐標(biāo)為(100,100)的位置上,畫(huà)一個(gè)半徑為40的圓,在圓心坐標(biāo)為(200,300)的位置上,畫(huà)一個(gè)半

25、徑為20的圓,在圓心坐標(biāo)為(400,150)的位置上,畫(huà)一條弧,弧的起始角度為30,結(jié)束角度為120,半徑為50。注意:功能需求必須是可測(cè)試的。一、面向?qū)ο蠓治?.4 面向?qū)ο蟮某绦蛞粋€(gè)簡(jiǎn)單圖形程序的需求:一、面向?qū)ο蠓治?.4 面向?qū)ο笠?、面向?qū)ο蠓治?面向?qū)ο蠓治鼍褪浅槿『驼碛脩粜枨蟛⒔?wèn)題域精確模型的過(guò)程。面向?qū)ο蠓治龅年P(guān)鍵工作,是分析確定問(wèn)題域中的對(duì)象及對(duì)象間的關(guān)系,從而建立起問(wèn)題域的對(duì)象模型。1.4 面向?qū)ο蟮某绦蛞弧⒚嫦驅(qū)ο蠓治?面向?qū)ο蠓治鼍褪浅槿『驼碛脩粜?在顯示器熒光屏上圓心坐標(biāo)為(100,100)的位置上,畫(huà)一個(gè)半徑為40的圓,在圓心坐標(biāo)為(200,300)的位置上,

26、畫(huà)一個(gè)半徑為20的圓,在圓心坐標(biāo)為(400,150)的位置上,畫(huà)一條弧,弧的起始角度為30,結(jié)束角度為120,半徑為50。顯示器熒光屏,圓心坐標(biāo),位置,半徑,圓,弧,起始角度,結(jié)束角度1. 確定對(duì)象一、面向?qū)ο蠓治?在顯示器熒光屏上圓心坐標(biāo)為(100,100)的位置顯2. 確定屬性一、面向?qū)ο蠓治龌A心坐標(biāo)半徑起始角度結(jié)束角度可見(jiàn)性圓圓心坐標(biāo)半徑可見(jiàn)性 注意:不可能在需求陳述中找到所有屬性,還必須借助領(lǐng)域知識(shí)和常識(shí),才能分析得出所需要的全部屬性,圓和弧都應(yīng)該再增加一個(gè)屬性可見(jiàn)性。2. 確定屬性一、面向?qū)ο蠓治龌A心坐標(biāo)半徑起始角度結(jié)束角度3. 確定服務(wù)一、面向?qū)ο蠓治鰣A圓心坐標(biāo)半徑可見(jiàn)性讀/寫(xiě)

27、圓心坐標(biāo)讀/寫(xiě)半徑讀/寫(xiě)可見(jiàn)性顯示隱藏弧圓心坐標(biāo)半徑起始角度結(jié)束角度可見(jiàn)性讀/寫(xiě)圓心坐標(biāo)讀/寫(xiě)半徑讀/寫(xiě)起始角度讀/寫(xiě)結(jié)束角度讀/寫(xiě)可見(jiàn)性顯示隱藏3. 確定服務(wù)一、面向?qū)ο蠓治鰣A圓心坐標(biāo)半徑可見(jiàn)性讀/寫(xiě)圓心二、面向?qū)ο笤O(shè)計(jì) 面向?qū)ο笤O(shè)計(jì)就是把通過(guò)分析得出的對(duì)程序的準(zhǔn)確需求轉(zhuǎn)變成實(shí)現(xiàn)程序的方案的過(guò)程。建立類(lèi)等級(jí)定義屬性定義服務(wù)1.4 面向?qū)ο蟮某绦蚨?、面向?qū)ο笤O(shè)計(jì) 面向?qū)ο笤O(shè)計(jì)就是把通過(guò)分析得出的三、面向?qū)ο缶幊套R(shí)別問(wèn)題及問(wèn)題的解中出現(xiàn)的對(duì)象根據(jù)對(duì)象的共同點(diǎn)和不同點(diǎn)對(duì)它們進(jìn)行分類(lèi)設(shè)計(jì)出對(duì)象間的相互的消息實(shí)現(xiàn)執(zhí)行對(duì)象間相互作用的算法的方法1.4 面向?qū)ο蟮某绦蛉?、面向?qū)ο缶幊套R(shí)別問(wèn)題及問(wèn)題的解中出

28、現(xiàn)的對(duì)象1.4 面四、面向?qū)ο鬁y(cè)試 運(yùn)用面向?qū)ο蠹夹g(shù),對(duì)組裝成一個(gè)完整的應(yīng)用系統(tǒng)進(jìn)行以對(duì)象概念為中心的軟件測(cè)試。OOT以對(duì)象的類(lèi)作為基本測(cè)試單位,查錯(cuò)的范圍主要是類(lèi)定義之內(nèi)的屬性和服務(wù),以及有限的對(duì)外接口所涉及的部分。1.4 面向?qū)ο蟮某绦蛩?、面向?qū)ο鬁y(cè)試 運(yùn)用面向?qū)ο蠹夹g(shù),對(duì)組裝成一1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言 從20世紀(jì)60年代開(kāi)始,先后出現(xiàn)了Simula、Smalltalk、Object-C、Eiffel、Ada、C+和Java等面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,每種語(yǔ)言各有其優(yōu)勢(shì)和應(yīng)用領(lǐng)域。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言 從20世紀(jì)60Simula67語(yǔ)言: 20世紀(jì)60年代開(kāi)發(fā),被認(rèn)為是面向?qū)ο?/p>

29、程序設(shè)計(jì)語(yǔ)言的鼻祖,它提供了對(duì)象、類(lèi)、繼承的概念,提出了面向?qū)ο蟮男g(shù)語(yǔ),面向?qū)ο蟪绦蛟O(shè)計(jì)的許多原始思想都來(lái)源于此語(yǔ)言。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Simula67語(yǔ)言: 1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Smalltalk語(yǔ)言: 從20世紀(jì)70年代開(kāi)始開(kāi)發(fā),它完整體現(xiàn)了來(lái)自于Simula以及其他早期原型語(yǔ)言中面向?qū)ο蟮母拍?,歷經(jīng)了Smalltalk-72、Smalltalk-76和Smalltalk-80幾個(gè)版本,現(xiàn)在一般用Smalltalk-80 。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Smalltalk語(yǔ)言: 1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言O(shè)bject-C語(yǔ)言: 1983年左右開(kāi)發(fā),它在C語(yǔ)言的基礎(chǔ)上進(jìn)行了擴(kuò)充,通過(guò)新引入的構(gòu)造和運(yùn)算符來(lái)完成類(lèi)定義和消息傳遞,其語(yǔ)法更像Smalltalk。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言O(shè)bject-C語(yǔ)言: 1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Eiffel語(yǔ)言:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論