面向?qū)ο缶幊蘝第1頁
面向?qū)ο缶幊蘝第2頁
面向?qū)ο缶幊蘝第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、面向?qū)ο缶幊淌裁词敲嫦驅(qū)ο缶幊??面向?qū)ο螅?Object-Oriented )述語源于挪威的 Kristen Nygaard 在開發(fā) Simula-67 程序語言時(shí)使用了對象(Object )概念。面向?qū)ο缶幊淌且?對象為基礎(chǔ),在對象之間傳遞消息來解決問題 (actor theory )的編程方法。為什么要使用面向?qū)ο缶幊蹋肯啾冗^程化編程,使用面向?qū)ο缶幊谭椒▽懗鰜淼某绦蚋哂兄赜眯院蛿U(kuò)展性,而且可以大大提高開發(fā)效率。比如一個(gè)公司可以建立自己的程序框架(Application Framework)和函數(shù)庫,然后可以在多個(gè)項(xiàng)目中使用。面向?qū)ο缶幊谭椒ǖ乃季S模式與人們的思維模式相同,所以更容易分析

2、、表現(xiàn)和解決現(xiàn)實(shí)世界中的具體問題??梢允褂?與面 向 對象相 關(guān)的工具 , 比如建 模工具 ( RationalRose)、開發(fā) 工具 (VisualStudio.NET 、 J Builder)、形象管理工具(Rational Clear Case)。面向?qū)ο缶幊谭椒ǖ奶匦愿m合多人合作開發(fā)(Team Development )。黑匣子( Black Box )- 是面向?qū)ο缶幊讨匾匦灾弧D憧梢允褂肬ML 建模,然后按類或組件為一個(gè)單位交給程序員。因?yàn)檫@些任務(wù)單位(類或組件)之間依賴性很小,所以程序員寫代碼時(shí)不用考慮其他問題。面向?qū)ο缶幊谭椒ǜm合目前流行的開發(fā)工具和技術(shù)。目前流行的開發(fā)

3、工具和技術(shù)都是以面向?qū)ο缶幊谭椒榛A(chǔ)的,所以你不知道面向?qū)ο缶幊?,學(xué)習(xí)和應(yīng)用它們就比較困難了。面向?qū)ο缶幊谭椒ǖ奶匦?面向?qū)ο缶幊谭椒ㄊ且詫ο鬄榛A(chǔ),所實(shí)現(xiàn)的功能是由對象之間傳遞消息來完成的。 所有對象都有自己的內(nèi)存空間,而且可以包含其他對象。 所有對象是類的實(shí)例(Instance)類是相同對象的集合(Set Of Objects)類定義對象的屬性和方法(Method )對象( Object)定義 : An object is a software bundle of variables and related methods.現(xiàn)實(shí)世界中每個(gè)物體都有自己的變量和行為,比如說你的手機(jī),型號是M

4、otoloraV70 ,價(jià)格是5000 元(這些是你的手機(jī)的變量),你的手機(jī)可以發(fā)送短消息,下載鈴聲(這些是你的手機(jī)的行為)。面向?qū)ο缶幊坍?dāng)中的對象是從現(xiàn)實(shí)世界中的物體中抽象出來的。在面向?qū)ο缶幊讨?,變量叫作屬性?Property),行為叫作方法(Method )。對象所知道的(Knows )和所能做的( Can do)都是由其屬性和方法來決定的。消息( Message)對象之間的交互是利用消息來完成的,每個(gè)對象收到消息之后,就執(zhí)行相應(yīng)的操作,然后返還結(jié)果。有時(shí)候?qū)ο笮枰郊拥男畔ⅲ瑏韴?zhí)行操作。比如你的手機(jī)對象要發(fā)送短消息,就必須知道要發(fā)給誰。 這些附加信息是通過消息按參數(shù)的方式傳遞給對象的

5、。需要注意的是, 雖然是相同的消息,但對于不同的對象,執(zhí)行后的結(jié)果是不一樣的。對于教授來說work 可能是給學(xué)生上課,而對于鮮花店的店員來說是賣鮮花。workwork類( Class)定義: A class is a blueprint, or prototype, that defines the variables and the methodscommon to all objects of a certain kind.類是相同對象的集合(Set Of Objects)。類定義相同對象的屬性和方法。屬 性屬 性姓名姓名: Jason年齡年齡: 27人(類)職業(yè)Jason(對象 )職業(yè):

6、棒球運(yùn)動(dòng)員封裝( Encapsulation)封裝就是上面所說的黑匣子( Black Box )特性。封裝特性提供外界與對象交互的控制機(jī)制,我們可以把外界所需要的服務(wù)公開,而把其他服務(wù)隱藏在對象內(nèi)部。這樣可以讓程序簡單化,而且可以避免調(diào)用不必要的服務(wù)所帶來的錯(cuò)誤。例:鮮花配送服務(wù)假設(shè)你在情人節(jié)想為遠(yuǎn)在他鄉(xiāng)的女朋友送玫瑰花。你打電話給鮮花店,告訴她,你女朋友的地址和姓名,鮮花店按照地址把鮮花送到你的女朋友手里。在這個(gè)例子中,你和鮮花店是對象,order 是消息。重要的是你只須把order 消息傳遞給鮮花店,而不必考慮鮮花店是怎樣把鮮花送到你的女朋友手里。orderdeliver抽象化( Abst

7、raction)抽象化是分析、過濾現(xiàn)實(shí)世界中的事物,導(dǎo)出對象的過程。抽象化是解決復(fù)雜問題的基本方法。程序員出身的分析員在做分析時(shí)常犯的錯(cuò)誤是把具體實(shí)現(xiàn)考慮進(jìn)來。其實(shí)分析階段不用考慮某個(gè)功能應(yīng)該怎樣寫成代碼,只要把業(yè)務(wù)流程分析,然后導(dǎo)出必要的對象就可以了。繼承與類型的兼容性(Inheritance )使用面向?qū)ο缶幊谭椒ǖ淖畲蠛锰幹蛔钍强梢院苋菀椎財(cái)U(kuò)展原由的程序代碼。這個(gè)特性就是繼承。我們可以繼承一個(gè)類生成新的類,原有類叫作父類(Parent Class)新類叫作子類( ChildClass)。子類不僅擁有父類的所有屬性和方法(不用寫額外的代碼),而且可以添加別的屬性和方法。屬 性屬 性姓名繼

8、 承姓名年齡年齡人(父類)職業(yè)足球運(yùn)動(dòng)員 (子類 )職業(yè)進(jìn)球數(shù)新添加的屬性大多數(shù)編程語言對數(shù)據(jù)類型的定義是嚴(yán)格的,就是說,你不能在兩個(gè)不同類型的數(shù)據(jù)之間進(jìn)行賦值。但有些例外,我們可以把子類的對象賦值給父類對象。其實(shí)按我們的思維方式,足球運(yùn)動(dòng)員屬于人,這是再正常不過的。滯后聯(lián)編與多態(tài)(Dynamic Binding & Ploymophism )滯后聯(lián)編是與靜態(tài)聯(lián)編(Static Binding )相反的一種聯(lián)編方式。靜態(tài)聯(lián)編指的是由編譯器或連接器來分析對象的方法調(diào)用,它們是通過調(diào)用函數(shù)或過程所占有的特殊內(nèi)存地址(函數(shù)地址)來代替直接調(diào)用。而滯后聯(lián)編是在程序運(yùn)行時(shí)才確定所調(diào)用對象方法的實(shí)際地址。這種技術(shù)的優(yōu)點(diǎn)被稱作多態(tài)。如果運(yùn)用好多態(tài)特性(結(jié)合繼承特性),我們可以編寫高重用性、高擴(kuò)展性的程序。Overriding & OverloadingOverriding 指的是可以覆蓋或重定義父類的動(dòng)態(tài)方法(在子類中),Overloading指的是在一個(gè)類或其子類中可以使用相同名稱的方法,但參數(shù)必須要不同???結(jié)使用面向?qū)ο缶幊谭椒ㄎ覀兛梢詫懗鼍哂懈咧赜眯院蛿U(kuò)張性的程序,而且可以大大提高開發(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論