版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章第二章面向?qū)ο蟮姆治雠c設(shè)計(jì)面向?qū)ο蟮姆治雠c設(shè)計(jì)學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo) 確定系統(tǒng)中的對(duì)象 確定對(duì)象的屬性及操作 測(cè)試對(duì)象的有效性 區(qū)分對(duì)象和類 說(shuō)出面向?qū)ο蟮木幊毯瓦^(guò)程化編程之間的區(qū)別 解釋封裝的主要好處 列出軟件開發(fā)的主要步驟 對(duì)象對(duì)象 (object) 我們可以把生活所在的真實(shí)世界(我們可以把生活所在的真實(shí)世界(Real World)當(dāng)作是由許多大小不同的對(duì)象所組成)當(dāng)作是由許多大小不同的對(duì)象所組成的。對(duì)象可以是有生命的個(gè)體,比如一個(gè)人的。對(duì)象可以是有生命的個(gè)體,比如一個(gè)人或一只鳥。或一只鳥。對(duì)象對(duì)象 對(duì)象也可以是無(wú)生命的個(gè)體,比如一輛汽車或一臺(tái)計(jì)算機(jī)。 對(duì)象也可以是一件抽象的概念,如天氣的
2、變化或鼠標(biāo)所產(chǎn)生的事件。 對(duì)象的特征對(duì)象的特征 對(duì)象有兩個(gè)特征:屬性和行為 例如:人有他的身高或體重作屬性,有他的行為如唱歌、打球、騎摩托車、開汽車。狗有它的顏色作屬性,有它的行為,如吠叫或跳躍。電視機(jī)有它的外形、尺寸和顏色,有它的行為,如開、關(guān),接收信號(hào),轉(zhuǎn)換頻道,調(diào)節(jié)音量。換檔開大燈煞車開冷氣顏色排檔數(shù)排氣量輪胎型號(hào)汽車對(duì)象汽車對(duì)象 以汽車為例,我們可定義其屬性與方法如: 本教程 中使用下面的示例來(lái)應(yīng)用面向?qū)ο蟮姆治雠c設(shè)計(jì)原理。公司名稱:DirectClothing公司按月生成目錄客戶可以打電話、使用郵寄和傳真必須每個(gè)檢查訂購(gòu)項(xiàng)的存貨水平DirectClothing接受支票和信用卡案例研究
3、案例研究 系統(tǒng)建模技術(shù) 嘗試描述一個(gè)系統(tǒng)在現(xiàn)實(shí)生活中的情形 定義系統(tǒng)的:對(duì)象讓對(duì)象工作的問(wèn)題對(duì)象屬性對(duì)象的特征對(duì)象操作所能執(zhí)行的任務(wù)面向?qū)ο蟾攀雒嫦驅(qū)ο蟾攀?對(duì)象對(duì)象: 找出問(wèn)題描述領(lǐng)域中的主要名詞 對(duì)象可能是:簡(jiǎn)單的或復(fù)雜的(襯衣,銀行)真實(shí)的或概念的(銀行出納員,帳戶) 對(duì)象有:屬性(顏色,尺寸 )操作(下訂單,取消訂單)確定對(duì)象確定對(duì)象 屬性:是對(duì)象的特征可以是數(shù)據(jù)或?qū)ο髮?duì)Order對(duì)象來(lái)說(shuō),可能包括orderID和items 操作:是對(duì)象執(zhí)行的動(dòng)作可以是對(duì)象做出的或施加給對(duì)象的動(dòng)作對(duì)Order對(duì)象來(lái)說(shuō),可能是place和cancel確定對(duì)象屬性和操作確定對(duì)象屬性和操作 建模對(duì)象建模對(duì)象
4、 屬性類型屬性類型 與問(wèn)題域的相關(guān)性對(duì)象是否在問(wèn)題陳述的界限之內(nèi)?系統(tǒng)是否必須有此對(duì)象才能完成任務(wù)?在用戶與系統(tǒng)的交互中是否必須有此對(duì)象? 獨(dú)立存在性 屬性和操作測(cè)試對(duì)象測(cè)試對(duì)象 分析問(wèn)題域 實(shí)驗(yàn)?zāi)繕?biāo):找出問(wèn)題域中的對(duì)象,及其屬性和操作 步驟:1、列出有關(guān)的對(duì)象(名詞) 2、列出這些對(duì)象的屬性和操作 3、為對(duì)象設(shè)置合理的屬性和操作 4、應(yīng)用上述的3條評(píng)判規(guī)則檢驗(yàn)對(duì) 象的有效性練習(xí)An object-oriented design for a Java application that tracks soccer scores.The program should track: The numb
5、er of goals each player scores in each game What teams the players play for and what season the games were play in 類類(class) 在真實(shí)世界里,有許多同“種類”的對(duì)象。而這些同“種類”的對(duì)象可被歸類為一個(gè)“類”。例如我們可將世界上所有的汽車歸類為汽車類,所有的動(dòng)物歸為動(dòng)物類。 動(dòng)物類汽車類什么是類? 是同種對(duì)象的集合與抽象 類與對(duì)象的關(guān)系 類 對(duì)象 抽象定義 實(shí)例 電視機(jī) 一臺(tái)長(zhǎng)虹電視機(jī) 學(xué)生 學(xué)生王強(qiáng) 類與對(duì)象 如果將對(duì)象比作汽車,那么類就是汽車的設(shè)計(jì)圖紙。所以面向?qū)ο蟪绦?/p>
6、設(shè)計(jì)的重點(diǎn)是類的設(shè)計(jì),而不是對(duì)象的設(shè)計(jì)。 實(shí)例實(shí)例 (instance) 汽車類有些共同的狀態(tài)(汽缸排氣量,排檔數(shù),顏色,輪胎數(shù))和行為(換檔,開燈,開冷氣),但每一臺(tái)汽車個(gè)別的狀態(tài)及方法可不同于且獨(dú)立于其他汽車 。 你的汽車只是這世界中許多汽車中的一個(gè)。我們就稱你的汽車對(duì)象是汽車類中的一個(gè)實(shí)例(instance)。 汽車類(class)實(shí)例(instance)NEW你的車OO的真正意義的真正意義 OO的真正意義是使得軟件開發(fā)接近人類的正常思維,將許多原來(lái)由人完成的工作交給機(jī)器去完成:-機(jī)器語(yǔ)言匯編語(yǔ)言 高級(jí)語(yǔ)言-面向過(guò)程面向模塊 面向?qū)ο?OO包括一套比較完整的方法,程序設(shè)計(jì)只是其中一個(gè)環(huán)節(jié)
7、。-面向?qū)ο蟮姆治?面向?qū)ο蟮脑O(shè)計(jì)-面向?qū)ο蟮某绦蛟O(shè)計(jì)-代碼重用面向?qū)ο笈c面向過(guò)程面向?qū)ο笈c面向過(guò)程公共數(shù)據(jù)函數(shù)函數(shù)函數(shù)函數(shù)算法數(shù)據(jù)結(jié)構(gòu)屬性數(shù)據(jù)方法方法屬性數(shù)據(jù)方法方法過(guò)程式程序設(shè)計(jì)OOP程序設(shè)計(jì)對(duì)象消息消息面向過(guò)程面向過(guò)程面向?qū)ο竺嫦驅(qū)ο驩OP三大特性:封裝、繼承與多態(tài)三大特性:封裝、繼承與多態(tài) 封裝(封裝(encapsulation ) 封裝是一種信息隱藏技術(shù)。 是指利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類型的內(nèi)部,系統(tǒng)的其他部分只有通過(guò)在數(shù)據(jù)外面的被授權(quán)的操作才能夠與這個(gè)抽象數(shù)據(jù)類型進(jìn)行交互。 在面向?qū)ο蟮木幊讨?,用類?lái)封裝相關(guān)的數(shù)據(jù)和 方法,保證了數(shù)據(jù)的
8、安全和系統(tǒng)的嚴(yán)密性。 倉(cāng)庫(kù)屬性操作價(jià)格表,物品, 賬單,電話, 等等提供物品,賬單等等考慮一個(gè)倉(cāng)庫(kù),外部只能通過(guò)管理員獲取物品。抽象 封裝的優(yōu)點(diǎn) 隱藏類的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)了信息的隱藏及安全性; 提高了程序的模塊化,且易于維護(hù); 具體實(shí)現(xiàn)是編寫該類的人控制的,讓使用者只能通過(guò)事先定制好的方法來(lái)訪問(wèn)數(shù)據(jù),可以方便地加入控制邏輯,限制對(duì)屬性的不合理操作繼承繼承 (inheritance) OOP是以類來(lái)定義一個(gè)對(duì)象的。當(dāng)一個(gè)類擁有另一個(gè)類的所有數(shù)據(jù)和方法時(shí),就稱這兩個(gè)類之間具有繼承關(guān)系?,F(xiàn)以下圖來(lái)說(shuō)明:汽車類轎車巴士計(jì)程車轎車、出租車、巴士都是汽車,故屬汽車類,我們稱其繼承(inherit)汽車類,而
9、轎車、出租車、巴士也都可自成一種類。這樣汽車類就稱為超類(superclass)或父類,而轎車、出租車、巴士就稱作子類 。 繼承交通工具車船飛機(jī)汽車火車父類/超類(superclass)子類(subclass)Java僅支持單繼承優(yōu)點(diǎn):使程序結(jié)構(gòu)清晰,減少了編碼和維護(hù)的工作量,子類可以使用父類所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。 多態(tài) 用同一個(gè)名字調(diào)用實(shí)現(xiàn)不同操作的方法 方式1:父類和子類之間的同名方法(覆蓋:子類方法的名稱和參數(shù)與父類方法的名稱和參數(shù)相同,在執(zhí)行過(guò)程中,子類的方法將覆蓋父類的方法) 方式2:同一類中參數(shù)不同的同名方法(重載:不是子類對(duì)父類同名方法的重新定義,而是類對(duì)自身已有的同名
10、方法的重新定義。重載方法的參數(shù)必須不同,或者是參數(shù)個(gè)數(shù)不同,或者是參數(shù)類型不同) 使用方便,且降低了維護(hù)和編程量 覆蓋class A public int x,y;A(int a , int b)x=a;y=b;public void display()int z;z=x+y;System.out.println(“add=”+z);class B extends A B(int a , int b)super(a,b);public void display()int z;z=x*y;System.out.println(“product=”+z);class AB extends B AB
11、(int x , int y)super(x,y);public static void main(String args)A num1=new A(4,10);B num2=new B(4,10);AB num3=new AB(4,10);num1.display();num2.display();num3.display();重載 class MethodOverloading void receive (int i)System.out.println(“一個(gè)整數(shù)”);System.out.println(“i=”+i);void receive (int x,int y)System.
12、out.println(“兩個(gè)整數(shù)”);System.out.println(“x=”+x+”y=”+y);void receive (double d)System.out.println(“一個(gè)浮點(diǎn)數(shù)”);System.out.println(“d=”+d);void receive (String s)System.out.println(“一個(gè)字符串”);System.out.println(“s=”+s);public class MethodOverloadingTestpublic static void main(String args)MethodOverloading MO
13、=new MethodOverloading();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive(“Hello”);面向?qū)ο蟮娜筇卣?1.封裝:將數(shù)據(jù)成員(Data Member)和屬于此數(shù)據(jù)的操作方法(Operating Method),放在同一個(gè)實(shí)體(Entity)或?qū)ο笾小?2.繼承:父類定義(Define)一些通用的屬性與行為,其孩子繼續(xù)使用。 3.多態(tài):在同一個(gè)類中可有許多同名的方法,但其參數(shù)數(shù)量與數(shù)據(jù)類型不同,而且操作過(guò)程與返回值也可能會(huì)不同。(1 1)模塊化)模塊化 (2 2)信息隱藏)信息隱藏 (1 1)實(shí)
14、現(xiàn)代碼復(fù)用)實(shí)現(xiàn)代碼復(fù)用 (2 2)簡(jiǎn)化設(shè)計(jì)過(guò)程)簡(jiǎn)化設(shè)計(jì)過(guò)程 解決其他語(yǔ)言中解決其他語(yǔ)言中不能重名的問(wèn)題不能重名的問(wèn)題 接 口 Interface 這個(gè)英文字的意思是一種裝置或系統(tǒng),使得不同性質(zhì)的實(shí)體(entities)能夠交互地運(yùn)作。比如,計(jì)算機(jī)的操作系統(tǒng)(operating system),可把它稱作是一種“人機(jī)接口”??墒沟檬褂谜撸ㄈ耍┡c計(jì)算機(jī)(機(jī)),通過(guò)鼠標(biāo)或鍵盤等裝置,而作為一種溝通接口,來(lái)與計(jì)算機(jī)做溝通,以指揮計(jì)算機(jī)做事。另外像RS232串行端口,常作為輸入/輸出設(shè)備傳輸接口,是計(jì)算機(jī)與輸入/輸出設(shè)備間的接口 。而在Java里,設(shè)計(jì)接口的用意,是可使得類不必受限于單一繼承的關(guān)系,
15、而可靈活地同時(shí)繼承一些共有的特性,達(dá)到多重繼承的目的,而免去C+中多重繼承的復(fù)雜關(guān)系所產(chǎn)生的bug 。像下圖中的出租車,可繼承“營(yíng)業(yè)車” 、“小車”、“汽油車”等類,卻不一定非要與同樣繼承“自用車”、“小車”,“汽油車”的轎車有上下繼承的關(guān)系。汽車類自用車營(yíng)業(yè)車小車大車汽油車柴油車轎車出租車巴士上類接口次類 改變程序的一部分不影響其他部分。 程序的其他部分與類的接口(“外部”)進(jìn)行交互 更改類的實(shí)現(xiàn)(“內(nèi)部”)而不更改接口 封裝的汽車:實(shí)現(xiàn)細(xì)節(jié)隱藏在車蓋實(shí)現(xiàn)細(xì)節(jié)隱藏在車蓋 下;駕駛員不必知道下;駕駛員不必知道汽車是怎樣工作的汽車是怎樣工作的汽車的部分零件改變或更換,駕駛員不必汽車的部分零件改變或更換,駕駛員不必改變對(duì)汽車的駕駛改變對(duì)汽車的駕駛接口和實(shí)現(xiàn)接口和實(shí)現(xiàn) 接口的定義 接口可以理解為一個(gè)特殊的類,只有常量和抽象方法組成的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度酒吧租賃合同樣本:酒吧與民宿聯(lián)營(yíng)租賃合同范本
- 2025年度合同主體變更補(bǔ)充協(xié)議的備案與公示
- 2025年度預(yù)算合同部關(guān)鍵績(jī)效考核指標(biāo)體系優(yōu)化協(xié)議
- 2025年度駕校與高校合作的大學(xué)生駕駛技能培訓(xùn)合同
- 2025年度新能源汽車自愿出資入股投資合同
- 綠色出行城市交通的環(huán)保措施
- 2024年醫(yī)療器械批發(fā)零售項(xiàng)目項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 職場(chǎng)心理健康從預(yù)防到干預(yù)的全面管理
- 校園內(nèi)交通安全規(guī)則及執(zhí)行措施
- 科技園區(qū)安全用電創(chuàng)新與規(guī)范并重
- 公眾聚集場(chǎng)所消防技術(shù)標(biāo)準(zhǔn)要點(diǎn)
- 幼兒園員工手冊(cè)與規(guī)章制度
- 社團(tuán)活動(dòng)經(jīng)費(fèi)預(yù)算申請(qǐng)表
- 經(jīng)營(yíng)范圍登記規(guī)范表述目錄(試行)(V1.0.2版)
- 2023年山東省威海市中考物理真題(附答案詳解)
- 第八講 發(fā)展全過(guò)程人民民主PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 王崧舟:學(xué)習(xí)任務(wù)群與課堂教學(xué)變革 2022版新課程標(biāo)準(zhǔn)解讀解析資料 57
- 招投標(biāo)現(xiàn)場(chǎng)項(xiàng)目經(jīng)理答辯(完整版)資料
- 運(yùn)動(dòng)競(jìng)賽學(xué)課件
- 2022年上海市初中畢業(yè)數(shù)學(xué)課程終結(jié)性評(píng)價(jià)指南
- 高考作文備考-議論文對(duì)比論證 課件14張
評(píng)論
0/150
提交評(píng)論