posts - 12,  comments - 0,  trackbacks - 0
          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(1)

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          第一章:對(duì)象簡(jiǎn)介
          對(duì)象有狀態(tài)、行為、標(biāo)識(shí)。
          類與數(shù)據(jù)類型區(qū)別:
          類實(shí)際上是一種數(shù)據(jù)類型。它們的區(qū)別在于:類是程序員為解決特定問(wèn)題而定做的,而數(shù)據(jù)類型是為了表示機(jī)器的存儲(chǔ)單元而設(shè)計(jì)的,它是現(xiàn)成的,是程序員無(wú)可奈何時(shí)的選擇。
          面向?qū)ο缶幊痰奶魬?zhàn)之一就是:如何在問(wèn)題空間的元素與解決空間的對(duì)象之間建立一種一對(duì)一的映射。

          可以向每個(gè)對(duì)象發(fā)送請(qǐng)求,這樣才能讓對(duì)象為你解決問(wèn)題,但每個(gè)對(duì)象只能滿足某些請(qǐng)求,具體能夠滿足哪些請(qǐng)求呢?這是由對(duì)象的接口(interface)所定義的。決定接口的是對(duì)象的類型。接口只管你能向?qū)ο蟀l(fā)送什么請(qǐng)求,但還必須要有滿足這一請(qǐng)求的代碼,這些代碼以及隱藏著的數(shù)據(jù),組成了實(shí)現(xiàn)(implementation)

          將對(duì)象做為服務(wù)的提供者
          隱藏實(shí)現(xiàn):
          將程序分為類的創(chuàng)造者(class creator)和客戶程序員(client programmer).訪問(wèn)控制符:public,private,protected.public表示后面跟著的東西誰(shuí)都能用。而private表示除非是類的創(chuàng)建者用這個(gè)類的方法進(jìn)行訪問(wèn),否則沒人能訪問(wèn)到這個(gè)元素。protected很像private,它們的區(qū)別在于,繼承類能夠訪問(wèn) protected成員但是不能訪問(wèn)private成員。Java還有一個(gè)“缺省”的訪問(wèn)權(quán)限。通常稱為package訪問(wèn)權(quán)限。國(guó)為同屬這個(gè) package的類可以訪問(wèn)這個(gè)package中其它類的“缺省權(quán)限”的成員。但是出了這個(gè)package,它們就都是private的了。

          復(fù)用實(shí)現(xiàn)(合成):在一個(gè)類中用另一個(gè)類創(chuàng)建對(duì)象,為了能讓新的類提供我所設(shè)計(jì)的功能,它可以由任意多個(gè),任意類型的對(duì)象,以任意形式組合在一起。由于你是用已有的類來(lái)合成新的類,因此這一概念被稱為合成。如果這個(gè)對(duì)象是動(dòng)態(tài)合成的,通常稱為聚合。通常交合成稱為“有(has-a )"關(guān)系。

          繼承:(復(fù)用接口)當(dāng)你繼承一個(gè)類時(shí),你也創(chuàng)建了一個(gè)新類,這個(gè)新的類不僅包含了已有類的所有成員,更重要的是它復(fù)制了基類的接口,于是所有能夠傳給基類的消息也都可以傳給派生類。
          你有兩種辦法來(lái)區(qū)分新的派生出來(lái)的類和那個(gè)原來(lái)的基類。第一種方法很簡(jiǎn)單:直接往派生類里加新的方法。這些新的方法不屬于基類的接口。也就是說(shuō)由于基類不能完成所有的工作,你必須加上更多的方法。第二種方法是在新的類中修改基類方法的行為,這被稱為覆寫(override)那個(gè)方法。要覆寫一個(gè)方法直接在類中重新定義這個(gè)方法就行了。

          多態(tài)性:
          多態(tài)性指的是相關(guān)的對(duì)象按照各自類型來(lái)實(shí)現(xiàn)方法的能力。繼承性指的就是派生類(子類)繼承抽象類(基類、父類),它是一種類特殊化的方式,用于聯(lián)系派生類和抽象類。在這里我把這兩個(gè)特點(diǎn)一起舉例說(shuō)明一下。在魔獸里,四個(gè)種族都有農(nóng)民,而且屬性和方法基本一樣,那我們就可以為農(nóng)民這個(gè)概念設(shè)置一個(gè)基類,然后將每族農(nóng)民設(shè)為一個(gè)子類。每個(gè)子類方法的類型可能不一樣。在運(yùn)行時(shí),通過(guò)判定對(duì)象所屬的類型再去執(zhí)行相應(yīng)類型所對(duì)應(yīng)的方法的。所以多態(tài)性與繼承是緊密關(guān)聯(lián)的。

          抽象類與接口(abstrcat與interface): 通常在有些設(shè)計(jì)方案中,你只想讓基類去表示由其派生出的類的接口。也就是你不想讓人創(chuàng)建一個(gè)基類的對(duì)象,而只是想把對(duì)象上傳給它,以期能使用這個(gè)類的接口。這樣你就需要使用abstract關(guān)鍵詞來(lái)把這個(gè)類做成抽象類。編譯器會(huì)阻止任何人創(chuàng)建abstrcat的對(duì)象。abstrcat 關(guān)鍵詞也可以用來(lái)表示這個(gè)方法還沒有實(shí)現(xiàn)--它就象是一個(gè)聲明”由這個(gè)類所派生出的所有類都有這個(gè)方法,但是它的實(shí)現(xiàn)不在這里“。abstrcat方法只能存在于abstrcat類里。如果有個(gè)類繼承了這個(gè)abstrcat類,那么它要么實(shí)現(xiàn)這個(gè)方法,要么也是一個(gè)abstrcat類。abstrcat方法能讓你將方法放到接口而不必為它寫一些無(wú)意義的代碼。interface關(guān)鍵詞更是對(duì)abstrcat類的概念的深化,它不允許你實(shí)現(xiàn)任何方法。如果你愿意你可以繼承多個(gè)接口,因?yàn)橐^承多個(gè)常規(guī)或是抽象類是不允許的。
          posted on 2007-11-28 15:21 仰望者 閱讀(139) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 金平| 洛阳市| 宁陵县| 炉霍县| 双柏县| 连城县| 石阡县| 宜兰县| 霍邱县| 嘉鱼县| 绥芬河市| 鹤庆县| 康马县| 麟游县| 嘉峪关市| 哈尔滨市| 化德县| 太保市| 高台县| 客服| 西畴县| 荆门市| 福安市| 灌南县| 嘉祥县| 宿州市| 德令哈市| 平塘县| 明水县| 万州区| 乐安县| 弥渡县| 远安县| 紫阳县| 福鼎市| 柳州市| 德钦县| 贡嘎县| 彰化市| 大同市| 开化县|