2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計(jì),、,第二章面向?qū)ο蟮姆治雠c設(shè)計(jì),學(xué)習(xí)目標(biāo),1 確定系統(tǒng)中的對象2 確定對象的屬性及操作3 測試對象的有效性4 區(qū)分對象和類5 了解面向?qū)ο蟮木幊毯瓦^程化編程之間的區(qū)別6 了解封裝的主要好處7 了解軟件開發(fā)的主要步驟,我們可以把生活所在的真實(shí)世界(Real World)當(dāng)作是由許多大小不同的對象所組成的。對象可以是有生命的個體,比如一個人或一只鳥。,,對象,對象,對象也可以是無生命的個體,比如一輛汽車或

2、一臺計(jì)算機(jī)。 對象也可以是一個抽象的概念,如天氣的變化或鼠標(biāo)所產(chǎn)生的事件。,,,對象的基本概念,客觀世界的組成:對象;對象之間的相互關(guān)系;對象:對象是系統(tǒng)中用來描述客觀事物的一個實(shí)體,它是構(gòu)成系統(tǒng)的一個基本單位。一個對象由一組屬性和操作組成。動態(tài)觀點(diǎn):對象的操作就是對象的行為,對象的特征,對象有兩個特征:屬性和行為如:一個人有他的身高或體重作屬性,有他的行為——如唱歌、打球、騎摩托車、開汽車。一條狗有它的顏色作

3、屬性,有它的行為,如搖尾巴或跳躍。一臺電視機(jī)有它的外形、尺寸和顏色,有它的行為,如開、關(guān),接收信號,轉(zhuǎn)換頻道,調(diào)節(jié)音量。,,,汽車對象,以汽車為例,我們可定義其屬性與方法如:,課程中通過下面的案例來學(xué)習(xí)面向?qū)ο蟮姆治雠c設(shè)計(jì)原理。,案例研究,公司名稱:DirectClothing公司業(yè)務(wù)包括:1、按月生成產(chǎn)品目錄2、客戶通過電話、網(wǎng)絡(luò)和傳真訂購3、隨時檢查訂購項(xiàng)的庫存情況4、公司接受支票和信用卡付款,定義系統(tǒng)的:對象1

4、、對象屬性——對象的特征2、對象操作——所能執(zhí)行的任務(wù),面向?qū)ο蟾攀?找出問題描述領(lǐng)域中的主要名詞對象可能是:簡單的或復(fù)雜的(襯衣,銀行)真實(shí)的或概念的(銀行出納員,帳戶)對象有:屬性(顏色,尺寸 )操作(下訂單,取消訂單),第一步:確定對象,對象找到了!,屬性:是對象的狀態(tài)特征可以是數(shù)據(jù)或其它對象對Order對象來說,可能包括orderID和items操作:是對象執(zhí)行的動作可以是對象做出的或施加給對象的動作對

5、Order對象來說,可能是place和cancel,第二步:確定對象屬性和操作,第三步:對象建模,屬性類型,與問題域的相關(guān)性對象是否在問題陳述的界限之內(nèi)?系統(tǒng)是否必須有此對象才能完成任務(wù)?在用戶與系統(tǒng)的交互中是否必須有此對象?獨(dú)立存在性屬性和操作,第四步:測試對象,面向?qū)ο蠓治鲂〗Y(jié),找出問題域中的對象,及其屬性和操作步驟:1、列出有關(guān)的對象(名詞) 2、列出這些對象的屬性和操作 3、為對象設(shè)置

6、合理的屬性和操作 4、應(yīng)用第四步的3條評判規(guī)則檢驗(yàn)對象的有效性,練習(xí),An object-oriented design for a Java application that tracks soccer scores.The program should track:The number of goals each player scores in each gameWhat teams the players p

7、lay for and what season the games were play in,什么是類? 是同種對象的集合與抽象,,類(class),類與對象關(guān)系,面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是類的設(shè)計(jì),而不是對象的設(shè)計(jì)。,,類與對象的關(guān)系 類 ? 對象 抽象定義 實(shí)例 電視機(jī) ? 一臺長虹電視機(jī)

8、 學(xué)生 ? 軟件學(xué)院05級學(xué)生小強(qiáng),實(shí)例對象 (instance),汽車類有些共同的屬性(汽缸排氣量,排檔數(shù),顏色,輪胎數(shù)……)和行為(換檔,開燈,開冷氣……),但每一臺汽車個別的狀態(tài)及方法可不同于且獨(dú)立于其他汽車 。你的汽車只是這世界中許多汽車中的一個。我們就稱你的汽車是汽車類中的一個實(shí)例對象(instance)。,,面向?qū)ο笈c面向過程,公共數(shù)據(jù),算法+數(shù)據(jù)結(jié)構(gòu),,,對象+消息,比較,結(jié)構(gòu)化程序設(shè)計(jì)

9、對應(yīng)的典型的計(jì)算機(jī)語言, 例如: C面向操作的函數(shù)(方法)是程序的基本單位面向?qū)ο蟪绦蛟O(shè)計(jì)對應(yīng)的典型的計(jì)算機(jī)語言, 例如: Java面向?qū)ο?object)的類(class)是程序的基本單位方法(函數(shù))被封裝在類中數(shù)據(jù)也常常被封裝在類中,,示例:過程化和面向?qū)ο髢煞N方法的比較,幾個編程小組在設(shè)計(jì)一個進(jìn)銷存系統(tǒng)其中,一個小組編寫處理貨物和庫存的程序,一個小組編寫處理訂單的程序,面向過程,面向?qū)ο?,OO的真正意義,O

10、O的真正意義是使得軟件開發(fā)接近人類的正常思維,將許多原來由人完成的工作交給機(jī)器去完成:-機(jī)器語言匯編語言 高級語言-面向過程面向模塊 面向?qū)ο?OO包括一套比較完整的方法,程序設(shè)計(jì)只是其中一個環(huán)節(jié)。-面向?qū)ο蟮姆治?面向?qū)ο蟮脑O(shè)計(jì)-面向?qū)ο蟮某绦蛟O(shè)計(jì)-代碼重用,,,,,小 結(jié),Java程序是由一個個類定義組成的編寫java程序的過程是從現(xiàn)實(shí)世界中抽象出java可實(shí)現(xiàn)的類,并用合適的語句

11、定義它的過程這個定義過程包括:1、對類中各種屬性和方法的定義 2、創(chuàng)建類的對象 3、類間的各種關(guān)系和接口的定義,什么是面向?qū)ο螅棵嫦驅(qū)ο笫且环N程序設(shè)計(jì)規(guī)范,其基本思想是使用對象、類、繼承、封裝、多態(tài)等基本概念來進(jìn)行程序設(shè)計(jì)。,OOP三大特性:封裝、繼承與多態(tài),封裝(encapsulation ) 封裝是一種信息隱藏技術(shù)。是指將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在內(nèi)部,系統(tǒng)的其他部分只有通過在數(shù)據(jù)外面的被授

12、權(quán)的操作才能夠進(jìn)行交互,目的在于將類使用者class user和類設(shè)計(jì)者class creator分開。在面向?qū)ο蟮木幊讨?,用類來封裝相關(guān)的數(shù)據(jù)和 方法,保證了數(shù)據(jù)的安全和系統(tǒng)的嚴(yán)密性。,,,,,,,,,倉庫,,,,屬性,操作,價格表,物品, 賬單,電話, 等等,提供物品,賬單等等,考慮一個倉庫,外部只能通過管理員獲取物品。,,抽象,封裝的優(yōu)點(diǎn)隱藏類的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)了信息的隱藏及安全性;提高了程序的模塊化,且易于維護(hù);具體實(shí)現(xiàn)

13、是編寫該類的人控制的,讓使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對屬性的不合理操作,封裝的汽車:實(shí)現(xiàn)細(xì)節(jié)隱藏在車蓋 下;駕駛員不必知道汽車是怎樣工作的汽車的部分零件改變或更換,駕駛員不必改變對汽車的駕駛,,交通工具,Java僅支持單繼承,優(yōu)點(diǎn):使程序結(jié)構(gòu)清晰,減少了編碼和維護(hù)的工作量,子類可以使用父類所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。,class ThisClass extends SuperCla

14、ss{ … }現(xiàn)以下圖來說明:,繼承,繼承,,,多態(tài)用同一個名字調(diào)用實(shí)現(xiàn)不同操作的方法方式1:父類和子類之間的同名方法(覆蓋:子類方法的名稱和參數(shù)與父類方法的名稱和參數(shù)相同,在執(zhí)行過程中,子類的方法將覆蓋父類的方法)方式2:同一類中參數(shù)不同的同名方法(重載:不是子類對父類同名方法的重新定義,而是類對自身已有的同名方法的重新定義。重載方法的參數(shù)必須不同,或者是參數(shù)個數(shù)不同,或者是參數(shù)類型不同)使用方便,

15、且降低了維護(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

16、(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(int x , int y){super(x,y);}pu

17、blic 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

18、 {void receive (int i){System.out.println(“一個整數(shù)”);System.out.println(“i=”+i);}void receive (int x,int y){System.out.println(“兩個整數(shù)”);System.out.println(“x=”+x+”y=”+y);}void

19、receive (double d){System.out.println(“一個浮點(diǎn)數(shù)”);System.out.println(“d=”+d);}void receive (String s){System.out.println(“一個字符串”);System.out.println(“s=”+s);}},public class Method

20、OverloadingTest{public static void main(String[] args){MethodOverloading MO=new MethodOverloading();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive(“Hello”);}}

21、,面向?qū)ο蟮娜筇卣?1.封裝:將數(shù)據(jù)成員(Data Member)和屬于此數(shù)據(jù)的操作方法(Operating Method),放在同一個實(shí)體中。2.繼承:父類定義一些通用的屬性與行為,其子類可以使用。3.多態(tài):在同一個類中可有許多同名的方法,但其參數(shù)個數(shù)與參數(shù)類型不同,而且操作過程與返回值也可能會不同。,(1)模塊化 (2)信息隱藏,(1)實(shí)現(xiàn)代碼復(fù)用 (2)簡化設(shè)計(jì)過程,解決其他語言中不能重名的問題,以前編寫的操作可以在

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論