ISE-2-2-信息系統(tǒng)開發(fā)之面向?qū)ο蟾拍?ppt_第1頁(yè)
ISE-2-2-信息系統(tǒng)開發(fā)之面向?qū)ο蟾拍?ppt_第2頁(yè)
ISE-2-2-信息系統(tǒng)開發(fā)之面向?qū)ο蟾拍?ppt_第3頁(yè)
ISE-2-2-信息系統(tǒng)開發(fā)之面向?qū)ο蟾拍?ppt_第4頁(yè)
ISE-2-2-信息系統(tǒng)開發(fā)之面向?qū)ο蟾拍?ppt_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、信息系統(tǒng)工程,1,4 面向?qū)ο蟮母拍?4.1 起源 4.2 對(duì)象和類 4.3 消息和方法 4.4 對(duì)象接口 4.5 繼承性 4.6 封裝性 4.7 多態(tài)性,信息系統(tǒng)工程,2,4.1 起源,在軟件開發(fā)過程中及使用后,使用者會(huì)不斷地提出各種更改要求。 而結(jié)構(gòu)化方法開發(fā)的程序中: 這種修改往往是很困難的,而且還會(huì)因?yàn)橛?jì)劃或考慮不周,不但舊錯(cuò)誤沒有得到徹底改正,又引入了新的錯(cuò)誤; 另一方面,在結(jié)構(gòu)化程序開發(fā)中,代碼的重用率很低,使得程序員的效率并不高。 為提高軟件系統(tǒng)的穩(wěn)定性、可修改性和可重用性,人們?cè)趯?shí)踐中逐漸創(chuàng)造出軟件工程的一種新途徑面向?qū)ο蠓椒▽W(xué)。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,3,面向?qū)ο蠡?/p>

2、本概念,OOP的出現(xiàn),信息系統(tǒng)工程,4,面向?qū)ο蠓椒ǖ某霭l(fā)點(diǎn)和基本原則是盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識(shí)世界、解決問題的方法與過程。 面向?qū)ο蟪绦騿T的觀點(diǎn):計(jì)算機(jī)程序結(jié)構(gòu)應(yīng)該與要解決的問題一致,而不是與某種分析或開發(fā)方法保持一致。 經(jīng)驗(yàn)表明,對(duì)任何軟件系統(tǒng)而言,其中最穩(wěn)定的成分往往是其相應(yīng)問題域(problem domain)中的成分。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,5,面向?qū)ο蠓椒ň哂邢率鏊膫€(gè)要點(diǎn): (1)認(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象。 世界:學(xué)校、學(xué)生、教師、桌子、教學(xué)樓、書籍等等對(duì)象 (2)把所有對(duì)象都劃分成各種對(duì)象類(簡(jiǎn)稱為類

3、),每個(gè)對(duì)象類都定義了一組數(shù)據(jù)和一組方法。 學(xué)生類:包含的對(duì)象有張三、李四等多個(gè)學(xué)生 學(xué)生類的數(shù)據(jù):姓名(name),性別(gender),年齡(age),籍貫(hometown)等 學(xué)生類的方法:getName(),setName(),getAge(),calculateMark(),面向?qū)ο蠡靖拍?信息系統(tǒng)工程,6,(3)按照子類(或稱為派生類)與父類(或稱為基類)的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級(jí))。 (4)對(duì)象彼此之間僅能通過傳遞消息互相聯(lián)系。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,7,4 面向?qū)ο蟮母拍?4.1 起源 4.2 對(duì)象和類 4.3 消息和方法 4.4

4、對(duì)象接口 4.5 繼承性 4.6 封裝性 4.7 多態(tài)性,信息系統(tǒng)工程,8,4.2 對(duì)象和類,某個(gè)信息系統(tǒng)所要處理的問題涉及的領(lǐng)域(范圍)叫做問題空間(問題域),而對(duì)象是問題空間中與系統(tǒng)問題處理相關(guān)的事物的抽象體。 不同視角的觀點(diǎn): 用戶對(duì)象相當(dāng)于現(xiàn)實(shí)世界的某類事物; 系統(tǒng)分析員對(duì)象是描述該事物的一組屬性數(shù)據(jù)和作用于這些屬性數(shù)據(jù)之上的操作方法。 一個(gè)對(duì)象是把事物的屬性和對(duì)屬性數(shù)據(jù)的操作方法結(jié)合而成的整體。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,9,對(duì)象表示真實(shí)的事物,它可以是視覺可見的東西或抽象概念,它既可以是主動(dòng)的、可以啟動(dòng)或控制過程的事物,也可以是被動(dòng)響應(yīng)服務(wù)請(qǐng)求的事物。 對(duì)象有三個(gè)特性:預(yù)定義

5、行為、狀態(tài)和標(biāo)識(shí)。 預(yù)定義行為是對(duì)象初始時(shí)所定義的動(dòng)作序列,直觀地說,是對(duì)象定義的各種方法的集合。 一個(gè)對(duì)象可以有任意個(gè)屬性或域,對(duì)象的狀態(tài)和存儲(chǔ)在它的域中的值相對(duì)應(yīng)。 而標(biāo)識(shí)是對(duì)象的唯一編號(hào),用來與其他對(duì)象相區(qū)別。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,10,學(xué)生對(duì)象張三,其數(shù)據(jù)包括(name,gender,age,grade) 狀態(tài): 狀態(tài)1:(張三,男,18,大一) 狀態(tài)2:(張三,男,19,大二) 狀態(tài)3:(張三,男,20,大三) 預(yù)定義行為: getName(),setName(),getAge(),calculateMark() 標(biāo)識(shí)一個(gè)獨(dú)有的引用:張三,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,

6、11,一個(gè)類定義了一組大體上相同的對(duì)象。一個(gè)類所包含的操作方法和屬性數(shù)據(jù)描述了一組對(duì)象的共同行為和屬性。 如學(xué)生是一個(gè)類,學(xué)生丁三、李四是兩個(gè)對(duì)象,是學(xué)生類的實(shí)例。 每一個(gè)對(duì)象都屬于某個(gè)類。類不僅決定了對(duì)象的類型,還決定它的域(屬性)和方法。 域和方法在類定義中表達(dá)出來。 創(chuàng)建一個(gè)新對(duì)象時(shí),與對(duì)象類型相對(duì)應(yīng)的類定義決定了對(duì)象的結(jié)構(gòu)和行為。,面向?qū)ο蠡靖拍?類(Class),信息系統(tǒng)工程,12,一個(gè)類的上層可以有超類,下層可以有子類,形成一種層次結(jié)構(gòu),且在這種類層次結(jié)構(gòu)中,一個(gè)類可以有多個(gè)超類,也可以有多個(gè)子類。 類和類之間的主要關(guān)系: 分類結(jié)構(gòu): 聚集結(jié)構(gòu): 關(guān)聯(lián)關(guān)系:,面向?qū)ο蠡靖拍?信

7、息系統(tǒng)工程,13,類的主要功能有三個(gè): 類定義了類型,即一組對(duì)象共有的屬性和方法; 類提供了它的類型的實(shí)現(xiàn),它定義了實(shí)例如何表示以及根據(jù)選定的表示方法如何實(shí)現(xiàn); 類提供了初始化實(shí)例的構(gòu)造器,構(gòu)造器可以用來創(chuàng)建和初始化新的實(shí)例。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,14,class Student String name; int age; String grade; public Student() age=0; public String getName() return name; public int getAge() return age; ,面向?qū)ο蠡靖拍?/變量定義 Student

8、amy; Student richard; /變量初始化 amy=new Student(); /方法調(diào)用 int nowAge=amy.getAge();,信息系統(tǒng)工程,15,4 面向?qū)ο蟮母拍?4.1 起源 4.2 對(duì)象和類 4.3 消息和方法 4.4 對(duì)象接口 4.5 繼承性 4.6 封裝性 4.7 多態(tài)性,信息系統(tǒng)工程,16,對(duì)象之間進(jìn)行通信的數(shù)據(jù)叫做消息。當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),包含要求接收對(duì)象去執(zhí)行某些活動(dòng)的信息,接收到消息的對(duì)象對(duì)其進(jìn)行解釋,然后予以響應(yīng)。這種通信機(jī)制叫做消息傳遞。 一個(gè)消息由下列三個(gè)元素組成: 消息名; 零個(gè)或多個(gè)參數(shù)列表,為接收對(duì)象提供數(shù)據(jù)信息; 對(duì)接收對(duì)

9、象的引用。,面向?qū)ο蠡靖拍?4.3 消息(Message)和方法(Method),信息系統(tǒng)工程,17,public class Student private int age; public void setAge(int newAge) age=newAge; public int getAge() return age; ,面向?qū)ο蠡靖拍?Student amy; amy =new Student(); amy.setAge(20);,信息系統(tǒng)工程,18,方法就是與一個(gè)對(duì)象有關(guān)的過程,即實(shí)現(xiàn)某一操作的一段代碼。 一個(gè)對(duì)象可以有任意數(shù)目的方法。當(dāng)對(duì)象收到一個(gè)消息時(shí),決定調(diào)用哪個(gè)方法來響應(yīng)

10、消息的過程稱為方法綁定。 方法綁定就是找到型構(gòu)(signature)和消息的元素相匹配的方法: 方法名與消息名相匹配; 方法的參數(shù)表與消息的參數(shù)表在類型和數(shù)目上相匹配。 執(zhí)行與消息對(duì)應(yīng)的預(yù)定義行為可能會(huì)產(chǎn)生三種結(jié)果: 返回一個(gè)值給消息發(fā)送者。 改變接收者的狀態(tài)。 改變作為參數(shù)傳給接收者的對(duì)象的狀態(tài)。,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,19,面向?qū)ο蠡靖拍?對(duì)象Student具有以下方法: getName() getAge() setAge() getMark(String grade) getMark(String grade,String course),方法綁定: Student amy;

11、 amy.getAge(); amy.getMark(”first year”,”english”);,信息系統(tǒng)工程,20,4 面向?qū)ο蟮母拍?4.1 起源 4.2 對(duì)象和類 4.3 消息和方法 4.4 對(duì)象接口 4.5 繼承性 4.6 封裝性 4.7 多態(tài)性,信息系統(tǒng)工程,21,對(duì)象可響應(yīng)的消息是由對(duì)象接口決定的。 對(duì)象接口以一組操作方法的形式出現(xiàn); 每一個(gè)操作對(duì)應(yīng)于在響應(yīng)某個(gè)消息時(shí)對(duì)象所完成的預(yù)定義行為; 客戶通過對(duì)象接口來理解對(duì)象支持的各種行為,并根據(jù)接口來發(fā)送消息。 調(diào)用對(duì)象的操作方法是要遵守一定的規(guī)則,這些規(guī)則描述了如何使用對(duì)象的每一個(gè)操作。 例如,當(dāng)一個(gè)Person對(duì)象接收到帶有一

12、個(gè)參數(shù)的setAge()消息時(shí),規(guī)則要求這個(gè)參數(shù)必須是整型數(shù)值對(duì)象,下面的消息就違反了對(duì)象調(diào)用規(guī)則: p.setAge(null);,面向?qū)ο蠡靖拍?4.4 對(duì)象接口(Interface),信息系統(tǒng)工程,22,對(duì)象接口的分類:,面向?qū)ο蠡靖拍?信息系統(tǒng)工程,23,class Student private String name,nickname; private int age; private String grade; public Student() age=0; public String getName() return name; public int getAge() re

13、turn age; public void setName(String newName) name=newName; setNickName(“nick”+newName); private void setNickName(String newName) nickname=newName; ,信息系統(tǒng)工程,24,4 面向?qū)ο蟮母拍?4.1 起源 4.2 對(duì)象和類 4.3 消息和方法 4.4 對(duì)象接口 4.5 繼承性 4.6 封裝性 4.7 多態(tài)性,信息系統(tǒng)工程,25,繼承性是類層次結(jié)構(gòu)中的一個(gè)重要特點(diǎn),是超類和子類之間共享數(shù)據(jù)和操作方法的機(jī)制。,面向?qū)ο蠡靖拍?4.5 繼承性(inher

14、itance),信息系統(tǒng)工程,26,面向?qū)ο蠡靖拍?繼承是軟件重用的一個(gè)基本機(jī)制。當(dāng)通過繼承定義一個(gè)新類時(shí),新類獲得了已存在類的屬性和行為。 新類稱為子類,而已存在類稱為超類或父類。 子類又可以是其他類的父類,這就形成了繼承層次結(jié)構(gòu)。,信息系統(tǒng)工程,27,面向?qū)ο蠡靖拍?繼承有下面三種使用方式: 子類定義新的屬性和方法作為對(duì)它所繼承的屬性和方法的補(bǔ)充。 子類重新實(shí)現(xiàn)所繼承的一個(gè)或多個(gè)方法。被子類重定義的方法稱為被覆蓋了;也可以說子類覆蓋了特定的方法。 方法被覆蓋后,類的行為發(fā)生了變化:對(duì)同一個(gè)消息,子類和父類的實(shí)例調(diào)用不同的方法,產(chǎn)生不同的行為。 子類實(shí)現(xiàn)一個(gè)或多個(gè)其父類聲明但沒有實(shí)現(xiàn)的方

15、法。這種情況下,這個(gè)父類就是一個(gè)抽象類,而它聲明但沒有實(shí)現(xiàn)的方法稱為抽象方法。,信息系統(tǒng)工程,28,class Student public Student()age=0; String name;int age;String grade; public String getName() return name; public int getAge()return age; class MiddleStudent extends Student String nickName; public String getName() return nickName; ,面向?qū)ο蠡靖拍?/變量定義 S

16、tudent amy; MiddleStudent richard; /變量初始化 。 /方法調(diào)用 amy.getName()和richard.getName(),信息系統(tǒng)工程,29,abstract class Student public Student()age=0; String name;int age;String grade; public String getName() return name; public int getAge()return age; public abstract void setAge(int newAge); class MiddleStudent

17、 extends Student String nickName; public String getName() return nickName; public void setAge(int newAge) age=newAge; ,面向?qū)ο蠡靖拍?/變量定義 MiddleStudent richard; /變量初始化 。 /方法調(diào)用 richard.getName()和 richard.setAge(5),信息系統(tǒng)工程,30,面向?qū)ο蠡靖拍?繼承的優(yōu)點(diǎn) 易編程、易理解:代碼短, 結(jié)構(gòu)清晰 易修改:共同部分只要在一處修改即可 易增加新類:只須描述不同部分,信息系統(tǒng)工程,31,4 面向?qū)?/p>

18、象的概念,4.1 起源 4.2 對(duì)象和類 4.3 消息和方法 4.4 對(duì)象接口 4.5 繼承性 4.6 封裝性 4.7 多態(tài)性,信息系統(tǒng)工程,32,面向?qū)ο蠡靖拍?4.6 封裝性(encapsulation),封裝是把一組相關(guān)軟件元素組織到一起的方法,其目的在于將對(duì)象的使用者和設(shè)計(jì)者分開,使用者不必知道對(duì)象行為實(shí)現(xiàn)的細(xì)節(jié),只須用設(shè)計(jì)者提供的對(duì)象接口來訪問對(duì)象。 利用封裝來隱藏那些不屬于對(duì)象公有接口的軟件元素稱為信息隱藏。 封裝的定義為: 對(duì)所有對(duì)象的內(nèi)部軟件范圍的邊界進(jìn)行限定; 對(duì)各對(duì)象之間相互作用的接口進(jìn)行描述; 對(duì)每個(gè)對(duì)象的內(nèi)部實(shí)現(xiàn)(操作程序和數(shù)據(jù))進(jìn)行保護(hù)。,信息系統(tǒng)工程,33,面向?qū)ο蠡靖拍?class Example private float bankRate; public float testResult() return bankRate; ,類Example定義了自己的軟件范圍; 僅能通過Example的接口來進(jìn)行訪問; 類的屬性定義和方法的具體實(shí)現(xiàn)外部不可見。,信息系統(tǒng)工程,34,面向?qū)ο蠡靖拍?封裝的好處: 隱藏和保

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論