面向?qū)ο蟮母拍钫n件_第1頁
面向?qū)ο蟮母拍钫n件_第2頁
面向?qū)ο蟮母拍钫n件_第3頁
面向?qū)ο蟮母拍钫n件_第4頁
面向?qū)ο蟮母拍钫n件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

信息系統(tǒng)分析與設(shè)計面向?qū)ο蟮母拍钚畔⑾到y(tǒng)分析與設(shè)計面向?qū)ο蟮母拍?

什么是面向?qū)ο??很多初學(xué)者都會問起這個問題,軟件工程學(xué)家Coad和Yourdon曾給出一個簡單定義:面向?qū)ο?對象+類+繼承+通信。如果一個軟件系統(tǒng)使用上述4個概念設(shè)計并加以實現(xiàn),則認為這個軟件系統(tǒng)是面向?qū)ο蟮?。面向?qū)ο蠹夹g(shù)的基本觀點可以概括如下。

(1)客觀世界由對象組成,任何客觀實體都是對象,復(fù)雜對象可以由簡單對象組成。

(2)具有相同數(shù)據(jù)和操作的對象可歸納成類,對象是類的一個實例。

(3)類可以派生出子類,子類除了繼承父類的全部特征外還可以有自己的特性。(4)對象之間的聯(lián)系通過消息傳遞來實現(xiàn)。由于類的封裝性,它具有某些對外界不可見的數(shù)據(jù),這些數(shù)據(jù)只能通過消息請求調(diào)用可見方法來訪問。面向?qū)ο蠓椒ǖ幕境霭l(fā)點就是盡可能地按照人類認識世界的方法和思維方法來分析和解決問題,使人們分析、設(shè)計一個系統(tǒng)的方法盡可能接近認識一個系統(tǒng)的方法。下面分別介紹面向?qū)ο蟮膸讉€核心元素。1.1對象(object)

面向?qū)ο蠓椒ň褪且詫ο鬄橹行摹槌霭l(fā)點的方法,所以對象的概念相當(dāng)重要。

《現(xiàn)代漢語詞典》(商務(wù)印書館,1996)的解釋是:對象(3)類可以派生出子類,子類除了繼承父類的全部特征外還可以有是行動或思考時作為目標(biāo)的人或事物。廣義地講,對象可以是任何人或事物。在00方法中,對象同樣有上述的含義。不過,可以定義得更精確一些:對象是一些屬性及專用服務(wù)的封裝體,它是問題空間中—些東西的抽象。在面向?qū)ο蟮南到y(tǒng)中,對象是基本的運行時的實體,它既包括數(shù)據(jù)(屬性),也包括作用于數(shù)據(jù)的操作(行為)。所以一個對象把屬性和行為封裝為一個整體。一個對象通??捎蓪ο竺傩院筒僮?部分組成。由以上定義可知,對象就是我們在問題空間中要考慮的那些人或事物,它具有一組屬性和一組操作,這些屬性的值刻畫了一個對象的狀態(tài);這些操作是對象的行為,通過它們改變對象的狀態(tài)(即屬性值)。

是行動或思考時作為目標(biāo)的人或事物。廣義地講,對象可以是任何人對象盡可能自然而又靈活地模擬現(xiàn)實世界,這使我們能更準(zhǔn)確地描述世界。數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中,它們不是分開的。這樣,對象就具有較強的獨立性和自治性,具有很好的模塊性,為軟件重用奠定了堅實的基礎(chǔ)??紤]一個簡單的對象:counter(計數(shù)器)。它有一個屬性value保存計數(shù)器計數(shù)值。有三個服務(wù):init()置value為“0”,dec()使value減“1”,inc()使value增“1”。它們之間的關(guān)系如圖5-1所示。

圖5-1counter對象

countervalueinit()dec()inc()對象盡可能自然而又靈活地模擬現(xiàn)實世界,這使我們能更準(zhǔn)確地描述1.2封裝(encapsulation)

封裝即信息隱藏。是面向?qū)ο蠓椒ǖ囊粋€重要原則。封裝是指把屬性和操作封進一個對象里,它的內(nèi)部信息對外界隱藏,不允許外界直接存取對象的屬性,只能通過對象提供的有限的接口對對象的屬性數(shù)據(jù)進行操作。對于外界來說,只能得知對象的外部行為而無法了解對象行為的內(nèi)部實現(xiàn)細節(jié),這樣可以保證對象內(nèi)部屬性數(shù)據(jù)的安全性。當(dāng)開發(fā)一個總體程序結(jié)構(gòu)時,程序的每個成分應(yīng)該封裝或隱蔽一個單一的模塊,定義每一模塊時應(yīng)盡可能少地顯露其內(nèi)部處理。對象是—個很好的封裝體。它向外提供的界面包括一組數(shù)據(jù)結(jié)構(gòu)(屬性)和一組操作(服務(wù)),而把內(nèi)部的實現(xiàn)細節(jié)(如函數(shù)體)隱蔽起來。把最不穩(wěn)定的部分封裝起來,需求變化就不太可怕了。

1.2封裝(encapsulation)對象實現(xiàn)了數(shù)據(jù)抽象,把數(shù)據(jù)和服務(wù)封裝于一個內(nèi)在的整體。因為這二者本來就是一個內(nèi)在的整體,分離開來是不明智的。與封裝密切相關(guān)的一個術(shù)語是可見性。它是指對象的屬性和服務(wù)允許對象外部存取和引用的程度。我們已經(jīng)討論了封裝的好處,然而封裝也有它的副作用。如果強調(diào)嚴(yán)格的封裝,則對象的任何屬性都不允許外部直接存取,因此就要增加許多沒有其它意義,只負責(zé)讀或?qū)懙姆?wù)。這為編程增加了負擔(dān),增加了運行開銷,并且使程序顯得臃腫。為了避免這一點,語言往往采取一種比較現(xiàn)實的靈活態(tài)度----允許對象有不同程度的可見性。1.3類(class)

在OO方法中,類的定義是:類是具有相同屬性和服務(wù)的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的對象實現(xiàn)了數(shù)據(jù)抽象,把數(shù)據(jù)和服務(wù)封裝于一個內(nèi)在的整體。因為這抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類是對象的抽象,它將一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作抽象封裝。類好比是一個對象模板,基于類就可以生成多個具有不同屬性值的對象,在類的定義中,可以為某個屬性指定一個值,作為它的默認值。類是面向?qū)ο蟮某绦蛟O(shè)計語言提供的可再用軟件成分,在面向?qū)ο蟮木幊陶Z言中,類是一個獨立的程序單位,它應(yīng)該有一個類名并包括屬性說明和服務(wù)說明兩個主要部分。類的作用是定義對象。比如,程度中給出一個類的說明,然后以靜態(tài)聲明或動態(tài)創(chuàng)建等方式定義它的對象實例。有些類之間存在一般和特殊關(guān)系,即一些類是某個類的特殊情況,某個類是一些類的一般情況。這是一種“is-a”抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。類是一組具有相同關(guān)系,即特殊類是一種一般類。例如“汽車”類、“輪船”類、“飛機”類都是一種“交通工具”類。特殊類是一般類的子類,一般類是特殊類的父類。同樣“汽車”類還可以有更特殊的類,如“轎車”類、“貨車”類等。在這種關(guān)系下形成一種層次的關(guān)聯(lián)。1.4繼承(inheritance)

繼承是指子類可以自動擁有父類的全部屬性與操作。這種使用已存在的定義作為基礎(chǔ)建立新定義的技術(shù)使得父類和子類之間能夠共享數(shù)據(jù)和方法。這是類之間的一種關(guān)系,在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新內(nèi)容。圖5-2表示了父類A和它的子類B之間的繼承關(guān)系。關(guān)系,即特殊類是一種一般類。例如“汽車”類、“輪船”類、“飛繼承部分增加部分

AB從A繼承

圖5-2類的繼承關(guān)系描述當(dāng)用一個類創(chuàng)建一個對象時,對象就繼承了該類的全部語義性質(zhì)。在定義一個新類時,也可以一方面繼承一個舊類的語義性質(zhì),一方面加上自己特有的屬性和操作。一個類繼承另一個類,其關(guān)系有如父子,因此把繼承AB從A繼承圖5-2類的繼承關(guān)系描述當(dāng)用一個類創(chuàng)建者稱為子類。繼承一個單一的父類時叫單重繼承,如果有兩個及兩個以上的父類則是多重繼承。繼承具有傳遞性,一個子類除了具有自己的全部特性以外還具有該類上層全部基類的一切特性。繼承簡化了對現(xiàn)實世界的描述,定義子類時不必重復(fù)定義那些在父類中已經(jīng)定義過的屬性和操作,而只需專注于自己特有的屬性與操作。繼承對于軟件復(fù)用是很有益的。在開發(fā)一個系統(tǒng)時,使特殊類繼承一般類,這本身就是軟件復(fù)用,然而其復(fù)用意義不僅如此。如果把用OO方法開發(fā)的類作為可復(fù)用構(gòu)件提交到構(gòu)件庫,那么在開發(fā)新系統(tǒng)時不僅可以直接地復(fù)用這個類,還可以把它作為一般類,通過繼承而實現(xiàn)復(fù)用,從而大大擴展了復(fù)用范圍。者稱為子類。繼承一個單一的父類時叫單重繼承,如果有兩個及兩個1.5消息(message)

為了更好地模塊化,對象不允許其他對象或函數(shù)訪問它的私有數(shù)據(jù),而只能向它發(fā)送消息。對象接收消息,根據(jù)消息及消息參數(shù)調(diào)用自己的服務(wù)來改變自己的狀態(tài)或返回結(jié)果。一條消息告訴一個對象做什么,它指出發(fā)送者、接收者、需要執(zhí)行的服務(wù)、需要的參數(shù)。在面向?qū)ο蠓椒ㄖ校瓿梢患虑榈姆椒ň褪窍蛴嘘P(guān)對象發(fā)送消息,而不是以前熟悉的函數(shù)調(diào)用。消息體現(xiàn)了對象的自治性和獨立性,對象間可通過消息實現(xiàn)交互,模擬現(xiàn)實世界。消息機制也控制了復(fù)雜性。1.6多態(tài)性(polymorphism)多態(tài)性是面向?qū)ο蠹夹g(shù)的一個重要概念。同一操作作用于1.5消息(message)不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。多態(tài)性通常通過派生類重載基類中的同名函數(shù)來實現(xiàn)。多態(tài)性分為如下兩種。(1)編譯時的多態(tài)性。編譯時的多態(tài)性是通過重載來實現(xiàn)的。系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù)、返回的類型等信息決定實現(xiàn)何種操作。(2)運行時的多態(tài)性。運行時的多態(tài)性就是指直到系統(tǒng)運行時,才根據(jù)實際情況決定實現(xiàn)何種操作。多態(tài)性一般可通過接口、繼承和抽象類來實現(xiàn)。不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)信息系統(tǒng)分析與設(shè)計謝謝觀看!信息系統(tǒng)分析與設(shè)計謝謝觀看!14信息系統(tǒng)分析與設(shè)計面向?qū)ο蟮母拍钚畔⑾到y(tǒng)分析與設(shè)計面向?qū)ο蟮母拍?5

什么是面向?qū)ο螅亢芏喑鯇W(xué)者都會問起這個問題,軟件工程學(xué)家Coad和Yourdon曾給出一個簡單定義:面向?qū)ο?對象+類+繼承+通信。如果一個軟件系統(tǒng)使用上述4個概念設(shè)計并加以實現(xiàn),則認為這個軟件系統(tǒng)是面向?qū)ο蟮?。面向?qū)ο蠹夹g(shù)的基本觀點可以概括如下。

(1)客觀世界由對象組成,任何客觀實體都是對象,復(fù)雜對象可以由簡單對象組成。

(2)具有相同數(shù)據(jù)和操作的對象可歸納成類,對象是類的一個實例。

(3)類可以派生出子類,子類除了繼承父類的全部特征外還可以有自己的特性。(4)對象之間的聯(lián)系通過消息傳遞來實現(xiàn)。由于類的封裝性,它具有某些對外界不可見的數(shù)據(jù),這些數(shù)據(jù)只能通過消息請求調(diào)用可見方法來訪問。面向?qū)ο蠓椒ǖ幕境霭l(fā)點就是盡可能地按照人類認識世界的方法和思維方法來分析和解決問題,使人們分析、設(shè)計一個系統(tǒng)的方法盡可能接近認識一個系統(tǒng)的方法。下面分別介紹面向?qū)ο蟮膸讉€核心元素。1.1對象(object)

面向?qū)ο蠓椒ň褪且詫ο鬄橹行?、為出發(fā)點的方法,所以對象的概念相當(dāng)重要。

《現(xiàn)代漢語詞典》(商務(wù)印書館,1996)的解釋是:對象(3)類可以派生出子類,子類除了繼承父類的全部特征外還可以有是行動或思考時作為目標(biāo)的人或事物。廣義地講,對象可以是任何人或事物。在00方法中,對象同樣有上述的含義。不過,可以定義得更精確一些:對象是一些屬性及專用服務(wù)的封裝體,它是問題空間中—些東西的抽象。在面向?qū)ο蟮南到y(tǒng)中,對象是基本的運行時的實體,它既包括數(shù)據(jù)(屬性),也包括作用于數(shù)據(jù)的操作(行為)。所以一個對象把屬性和行為封裝為一個整體。一個對象通常可由對象名、屬性和操作3部分組成。由以上定義可知,對象就是我們在問題空間中要考慮的那些人或事物,它具有一組屬性和一組操作,這些屬性的值刻畫了一個對象的狀態(tài);這些操作是對象的行為,通過它們改變對象的狀態(tài)(即屬性值)。

是行動或思考時作為目標(biāo)的人或事物。廣義地講,對象可以是任何人對象盡可能自然而又靈活地模擬現(xiàn)實世界,這使我們能更準(zhǔn)確地描述世界。數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中,它們不是分開的。這樣,對象就具有較強的獨立性和自治性,具有很好的模塊性,為軟件重用奠定了堅實的基礎(chǔ)。考慮一個簡單的對象:counter(計數(shù)器)。它有一個屬性value保存計數(shù)器計數(shù)值。有三個服務(wù):init()置value為“0”,dec()使value減“1”,inc()使value增“1”。它們之間的關(guān)系如圖5-1所示。

圖5-1counter對象

countervalueinit()dec()inc()對象盡可能自然而又靈活地模擬現(xiàn)實世界,這使我們能更準(zhǔn)確地描述1.2封裝(encapsulation)

封裝即信息隱藏。是面向?qū)ο蠓椒ǖ囊粋€重要原則。封裝是指把屬性和操作封進一個對象里,它的內(nèi)部信息對外界隱藏,不允許外界直接存取對象的屬性,只能通過對象提供的有限的接口對對象的屬性數(shù)據(jù)進行操作。對于外界來說,只能得知對象的外部行為而無法了解對象行為的內(nèi)部實現(xiàn)細節(jié),這樣可以保證對象內(nèi)部屬性數(shù)據(jù)的安全性。當(dāng)開發(fā)一個總體程序結(jié)構(gòu)時,程序的每個成分應(yīng)該封裝或隱蔽一個單一的模塊,定義每一模塊時應(yīng)盡可能少地顯露其內(nèi)部處理。對象是—個很好的封裝體。它向外提供的界面包括一組數(shù)據(jù)結(jié)構(gòu)(屬性)和一組操作(服務(wù)),而把內(nèi)部的實現(xiàn)細節(jié)(如函數(shù)體)隱蔽起來。把最不穩(wěn)定的部分封裝起來,需求變化就不太可怕了。

1.2封裝(encapsulation)對象實現(xiàn)了數(shù)據(jù)抽象,把數(shù)據(jù)和服務(wù)封裝于一個內(nèi)在的整體。因為這二者本來就是一個內(nèi)在的整體,分離開來是不明智的。與封裝密切相關(guān)的一個術(shù)語是可見性。它是指對象的屬性和服務(wù)允許對象外部存取和引用的程度。我們已經(jīng)討論了封裝的好處,然而封裝也有它的副作用。如果強調(diào)嚴(yán)格的封裝,則對象的任何屬性都不允許外部直接存取,因此就要增加許多沒有其它意義,只負責(zé)讀或?qū)懙姆?wù)。這為編程增加了負擔(dān),增加了運行開銷,并且使程序顯得臃腫。為了避免這一點,語言往往采取一種比較現(xiàn)實的靈活態(tài)度----允許對象有不同程度的可見性。1.3類(class)

在OO方法中,類的定義是:類是具有相同屬性和服務(wù)的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的對象實現(xiàn)了數(shù)據(jù)抽象,把數(shù)據(jù)和服務(wù)封裝于一個內(nèi)在的整體。因為這抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類是對象的抽象,它將一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作抽象封裝。類好比是一個對象模板,基于類就可以生成多個具有不同屬性值的對象,在類的定義中,可以為某個屬性指定一個值,作為它的默認值。類是面向?qū)ο蟮某绦蛟O(shè)計語言提供的可再用軟件成分,在面向?qū)ο蟮木幊陶Z言中,類是一個獨立的程序單位,它應(yīng)該有一個類名并包括屬性說明和服務(wù)說明兩個主要部分。類的作用是定義對象。比如,程度中給出一個類的說明,然后以靜態(tài)聲明或動態(tài)創(chuàng)建等方式定義它的對象實例。有些類之間存在一般和特殊關(guān)系,即一些類是某個類的特殊情況,某個類是一些類的一般情況。這是一種“is-a”抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。類是一組具有相同關(guān)系,即特殊類是一種一般類。例如“汽車”類、“輪船”類、“飛機”類都是一種“交通工具”類。特殊類是一般類的子類,一般類是特殊類的父類。同樣“汽車”類還可以有更特殊的類,如“轎車”類、“貨車”類等。在這種關(guān)系下形成一種層次的關(guān)聯(lián)。1.4繼承(inheritance)

繼承是指子類可以自動擁有父類的全部屬性與操作。這種使用已存在的定義作為基礎(chǔ)建立新定義的技術(shù)使得父類和子類之間能夠共享數(shù)據(jù)和方法。這是類之間的一種關(guān)系,在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新內(nèi)容。圖5-2表示了父類A和它的子類B之間的繼承關(guān)系。關(guān)系,即特殊類是一種一般類。例如“汽車”類、“輪船”類、“飛繼承部分增加部分

AB從A繼承

圖5-2類的繼承關(guān)系描述當(dāng)用一個類創(chuàng)建一個對象時,對象就繼承了該類的全部語義性質(zhì)。在定義一個新類時,也可以一方面繼承一個舊類的語義性質(zhì),一方面加上自己特有的屬性和操作。一個類繼承另一個類,其關(guān)系有如父子,因此把繼承AB從A繼承圖5-2類的繼承關(guān)系描述當(dāng)用一個類創(chuàng)建者稱為子類。繼承一個單一的父類時叫單重繼承,如果有兩個及兩個以上的父類則是多重繼承。繼承具有傳遞性,一個子類除了具有自己的全部特性以外還具有該類上層全部基類的一切特性。繼承簡化了對現(xiàn)實世界的描述,定義子類時不必重復(fù)定義那些在

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論