一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

java學(xué)習(xí)——理解面向?qū)ο蟪绦蛟O(shè)計(jì)

 鳳舞天煌 2007-05-30
  1.編程模型
  
  所有計(jì)算機(jī)均由兩種元素組成:代碼和數(shù)據(jù).精確的說,有些程序是圍繞著"什么正在發(fā)生"而編寫,有些則是圍繞"誰正在受影響"而編寫的.
  
  第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特征,可被理解為作用于數(shù)據(jù)的代碼.如 C 等過程化語言.
  
  第二種編程方式叫做"面向?qū)ο蟮哪P?,按這種模型編寫的程序圍繞著程序的數(shù)據(jù)(對(duì)象)和針對(duì)該對(duì)象而嚴(yán)格定義的接口來組織程序,它的特點(diǎn)是數(shù)據(jù)控制代碼的訪問.通過把控制權(quán)轉(zhuǎn)移到數(shù)據(jù)上,面向?qū)ο蟮哪P驮诮M織方式上有:抽象,封裝,繼承和多態(tài)的好處.
  
  2.抽象
  
  面向?qū)ο蟪绦蛟O(shè)計(jì)的基本要素是抽象,程序員通過抽象來管理復(fù)雜性.
  
  管理抽象的有效方法是使用層次式的分類特性,這種方法允許用戶根據(jù)物理含義分解一個(gè)復(fù)雜的系統(tǒng),把它劃分成更容易管理的塊.例如,一個(gè)計(jì)算機(jī)系統(tǒng)是一個(gè)獨(dú)立的對(duì)象.而在計(jì)算機(jī)系統(tǒng)內(nèi)部由幾個(gè)子系統(tǒng)組成:顯示器,鍵盤,硬盤驅(qū)動(dòng)器,DVD-ROM,軟盤,音響等,這些子系統(tǒng)每個(gè)又由專門的部件組成.關(guān)鍵是需要使用層次抽象來管理計(jì)算機(jī)系統(tǒng)(或其他任何復(fù)雜系統(tǒng))的復(fù)雜性.
  
  面向?qū)ο蟪绦蛟O(shè)計(jì)的本質(zhì):這些抽象的對(duì)象可以被看作具體的實(shí)體,這些實(shí)體對(duì)用來告訴我們作什么的消息進(jìn)行響應(yīng).
  
  /* (我的理解)
  
  *計(jì)算機(jī)是一個(gè)實(shí)體,我要輸入字符,顯示器顯示出來,那么
  
  *計(jì)算機(jī)(對(duì)象).輸入(鍵盤屬性).顯示(顯示方法)
  
  *使用分層來引用,操作.而不用管計(jì)算機(jī)內(nèi)部如何處理.
  
  *只要有計(jì)算機(jī)對(duì)象,它就能響應(yīng)我的操作,而我敲鍵盤,
  
  *計(jì)算機(jī)對(duì)象就把這個(gè)消息傳給屏幕,屏幕顯示.
  
  */
  
  計(jì)算機(jī)對(duì)象包含了它所有的屬性,以及操作,這就是面向?qū)ο蟪绦蛟O(shè)計(jì)的三大原則之一:封裝.
  
  3.封裝
  
  封裝是一種把代碼和代碼所操作的數(shù)據(jù)捆綁在一起,使這兩者不受外界干擾和誤用的機(jī)制.封裝可被理解為一種用做保護(hù)的包裝器,以防止代碼和數(shù)據(jù)被包裝器外部所定義的其他代碼任意訪問.對(duì)包裝器內(nèi)部代碼與數(shù)據(jù)的訪問通過一個(gè)明確定義的接口來控制.封裝代碼的好處是每個(gè)人都知道怎樣訪問代碼,進(jìn)而無需考慮實(shí)現(xiàn)細(xì)節(jié)就能直接使用它,同時(shí)不用擔(dān)心不可預(yù)料的副作用.
  
  在JAVA中,最基本的封裝單元是類,一個(gè)類定義著將由一組對(duì)象所共享的行為(數(shù)據(jù)和代碼).一個(gè)類的每個(gè)對(duì)象均包含它所定義的結(jié)構(gòu)與行為,這些對(duì)象就好象是一個(gè)模子鑄造出來的.所以對(duì)象也叫做類的實(shí)例.
  
  在定義一個(gè)類時(shí),需要指定構(gòu)成該類的代碼與數(shù)據(jù).特別是,類所定義的對(duì)象叫做成員變量或?qū)嵗兞?操作數(shù)據(jù)的代碼叫做成員方法.方法定義怎樣使用成員變量,這意味著類的行為和接口要由操作實(shí)例數(shù)據(jù)的方法來定義.
  
  由于類的用途是封裝復(fù)雜性,所以類的內(nèi)部有隱藏實(shí)現(xiàn)復(fù)雜性的機(jī)制.所以JAVA中提供了私有和公有的訪問模式,類的公有接口代表外部的用戶應(yīng)該知道或可以知道的每件東西.私有的方法數(shù)據(jù)只能通過該類的成員代碼來訪問.這就可以確保不會(huì)發(fā)生不希望的事情.
  
  4.繼承
  
  繼承是指一個(gè)對(duì)象從另一個(gè)對(duì)象中獲得屬性的過程.是面向?qū)ο蟪绦蛟O(shè)計(jì)的三大原則之二,它支持按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動(dòng)物的一種,哺乳動(dòng)物又是動(dòng)物的一種.如果不使用層次的概念,每個(gè)對(duì)象需要明確定義各自的全部特征.通過層次分類方式,一個(gè)對(duì)象只需要在它的類中定義是它成為唯一的 各個(gè)屬性,然后從父類中繼承它的通用屬性.因此,正是由于繼承機(jī)制,才使得一個(gè)對(duì)象可以成為一個(gè)通用類的一個(gè)特定實(shí)例.一個(gè)深度繼承的子類將繼承它在類層次中的每個(gè)祖先的所有屬性.
  
  繼承與封裝可以互相作用.如果一個(gè)給定的類封裝了某些屬性,它的任何子類將會(huì)含有同樣得屬性,另加各個(gè)子類所有得屬性.這是面向?qū)ο蟪绦蛟趶?fù)雜性上呈線性而非幾何增長的一個(gè)重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統(tǒng)中的其他代碼不會(huì)產(chǎn)生無法預(yù)料的交互作用.
  
  5.多態(tài)
  
  多態(tài)是指一個(gè)方法只能有一個(gè)名稱,但可以有許多形態(tài),也就是程序中可以定義多個(gè)同名的方法,用"一個(gè)接口,多個(gè)方法"來描述.可以通過方法的參數(shù)和類型引用.
  
  6.封裝,繼承,多態(tài)的組合使用
  
  在由封裝,繼承,多態(tài)所組成的環(huán)境中,程序員可以編寫出比面向過程模型更健壯,更具擴(kuò)展性的程序.經(jīng)過仔細(xì)設(shè)計(jì)的類層次結(jié)構(gòu)是重用代碼的基礎(chǔ).封裝能讓程序員不必修改公有接口的代碼即可實(shí)現(xiàn)程序的移植.多態(tài)能使程序員開發(fā)出簡潔,易懂,易修改的代碼.例如:汽車
  
  從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是奔馳牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經(jīng)過一段時(shí)間駕駛后,都能知道手動(dòng)檔與自動(dòng)檔之間的差別,因?yàn)樗麄儗?shí)際上都知道這兩者的共同超類:傳動(dòng)裝置.
  
  從封裝的角度看,駕駛員總是看到封裝好的特性.剎車隱藏了許多復(fù)雜性,其外觀如此簡單,用腳就能操作它.發(fā)動(dòng)機(jī),手剎,輪胎大小的實(shí)現(xiàn)對(duì)與剎車類的定義沒有影響.
  
  從多態(tài)的角度看,剎車系統(tǒng)有正鎖反鎖之分,駕駛員只用腳踩剎車停車,同樣的接口可以用來控制若干種不同的實(shí)現(xiàn)(正鎖或反鎖).
  
  這樣各個(gè)獨(dú)立的構(gòu)件才被轉(zhuǎn)換為汽車這個(gè)對(duì)象的.同樣,通過使用面向?qū)ο蟮脑O(shè)計(jì)原則,程序員可以把一個(gè)復(fù)雜程序的各個(gè)構(gòu)件組合在一起,形成一個(gè)一致,健壯,可維護(hù)的程序

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多

    在线亚洲成人中文字幕高清| 91亚洲熟女少妇在线观看| 欧美大胆女人的大胆人体| 国产欧美另类激情久久久| 欧美大黄片在线免费观看| 日韩中文字幕有码午夜美女| 亚洲熟女乱色一区二区三区| 色无极东京热男人的天堂| 国产成人精品一区在线观看| 欧美一区二区口爆吞精| 99香蕉精品视频国产版| 欧美日韩国产午夜福利| 国产成人精品99在线观看| 亚洲av又爽又色又色| 亚洲欧洲成人精品香蕉网| 亚洲中文在线中文字幕91| 青青操日老女人的穴穴| 中日韩免费一区二区三区| 国产又爽又猛又粗又色对黄 | 国产视频福利一区二区| 麻豆国产精品一区二区| 日本道播放一区二区三区| 玩弄人妻少妇一区二区桃花| 欧美国产日韩变态另类在线看| 国产免费一区二区不卡| 视频在线观看色一区二区| 九九九热视频免费观看| 日韩中文无线码在线视频| 久草精品视频精品视频精品| 欧美日韩国产综合特黄| 日韩特级黄片免费在线观看| 人妻中文一区二区三区| 欧美不雅视频午夜福利| 欧美色婷婷综合狠狠爱| 大尺度激情福利视频在线观看| 久久精品视频就在久久| 伊人久久五月天综合网| 99热在线精品视频观看| 尹人大香蕉一级片免费看| 亚洲中文字幕在线观看四区| 欧美精品亚洲精品一区|