面向?qū)ο缶幊踢M(jìn)階課件_第1頁(yè)
面向?qū)ο缶幊踢M(jìn)階課件_第2頁(yè)
面向?qū)ο缶幊踢M(jìn)階課件_第3頁(yè)
面向?qū)ο缶幊踢M(jìn)階課件_第4頁(yè)
面向?qū)ο缶幊踢M(jìn)階課件_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蠓庋b方法封裝邏輯,類(lèi)封裝數(shù)據(jù)和方法。通過(guò)訪問(wèn)控制機(jī)制,限制對(duì)數(shù)據(jù)和方法的訪問(wèn)。成員變量都聲明為私有的。對(duì)成員變量的訪問(wèn)都必須通過(guò)本類(lèi)的方法。比如get/set方法對(duì)。繼承類(lèi)重用的兩種方式:繼承和組合。組合:在一個(gè)類(lèi)中包含另外一個(gè)類(lèi)的對(duì)象的引用。繼承單一繼承:在Java語(yǔ)言中,一個(gè)子類(lèi)只能有一個(gè)直接父類(lèi),而一個(gè)父類(lèi)可以有多個(gè)直接子類(lèi)。單根結(jié)構(gòu):在Java語(yǔ)言中,Object類(lèi)是所有類(lèi)的父類(lèi)。繼承對(duì)父類(lèi)的兩種擴(kuò)展方式:增加屬性和方法;覆蓋父類(lèi)方法。覆蓋:在子類(lèi)中定義一個(gè)與父類(lèi)方法具有相同方法簽名的方法,以實(shí)現(xiàn)對(duì)父類(lèi)方法的改造。覆蓋方法名和形參列表相同返回值類(lèi)型相同或子類(lèi)方法的返回值類(lèi)型是父類(lèi)方法返回值類(lèi)型的子類(lèi)型。訪問(wèn)權(quán)限不能比被覆蓋方法更嚴(yán)格。不能拋出比被覆蓋方法更多的異常。靜態(tài)方法只能被靜態(tài)方法覆蓋,實(shí)例方法只能被實(shí)例方法覆蓋。動(dòng)態(tài)綁定在程序運(yùn)行期間,JVM根據(jù)對(duì)象的類(lèi)型不同,綁定不同的方法。super訪問(wèn)父類(lèi)的被覆蓋的方法和被隱藏的成員變量。訪問(wèn)父類(lèi)的構(gòu)造器,且放在構(gòu)造器的第一行代碼。不能同時(shí)訪問(wèn)本類(lèi)重載的構(gòu)造器和父類(lèi)構(gòu)造器。this代表當(dāng)前對(duì)象的引用。實(shí)例方法中隱式的包含一個(gè)this。通過(guò)this訪問(wèn)本類(lèi)重載的構(gòu)造器,且放在構(gòu)造器的第一行。單子模式只產(chǎn)生該類(lèi)的一個(gè)對(duì)象。final具有”不可改變”的含義。可以修飾非抽象類(lèi),非抽象方法,屬性。final修飾的實(shí)例成員變量必須顯式初始化,在定義或者構(gòu)造器中。final修飾的靜態(tài)成員變量必須在定義時(shí)顯式初始化。System.out.printlnout:是System類(lèi)的PrintStream類(lèi)型的靜態(tài)成員變量。println:是PrintStream的一個(gè)實(shí)例方法。toString:如果需要打印輸出自定義類(lèi)的對(duì)象,則在自定義類(lèi)中需要覆蓋toString方法。abstract可以用來(lái)修飾類(lèi)和方法,分別稱(chēng)為抽象類(lèi)和抽象方法。抽象類(lèi)不能直接實(shí)例化。抽象方法只有方法定義,沒(méi)有方法體。抽象類(lèi)中也有構(gòu)造器,以便子類(lèi)構(gòu)造器調(diào)用。模版方法模式在抽象父類(lèi)中定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類(lèi)中實(shí)現(xiàn)。代表這些具體邏輯步驟的方法稱(chēng)為基本方法,代表算法骨架的方法稱(chēng)為模版方法。角色:抽象模版角色,具體模版角色。抽象模版角色定義一個(gè)或多個(gè)抽象操作,以便讓子類(lèi)實(shí)現(xiàn)。這些抽象操作叫基本方法,它們是整個(gè)骨架操作的組成部分。定義并實(shí)現(xiàn)了一個(gè)模版方法。它實(shí)現(xiàn)了整體操作的骨架,而該整體操作由一個(gè)或多個(gè)抽象方法組成。這些抽象方法的具體邏輯由子類(lèi)實(shí)現(xiàn)。該整體操作也有可能調(diào)用一些具體方法。開(kāi)--閉原則一個(gè)軟件實(shí)體應(yīng)該對(duì)擴(kuò)展開(kāi)放,修改關(guān)閉。通過(guò)擴(kuò)展已有的軟件系統(tǒng),可以提供新的行為,以滿(mǎn)足對(duì)軟件的新需求。使變化中的軟件有一定的適應(yīng)性和靈活性。已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。接口有兩種含義第一,概念性的,是指系統(tǒng)中向外界提供的所有服務(wù)。類(lèi)的所有能被外界訪問(wèn)的方法稱(chēng)為類(lèi)的接口。第二,狹義的,就是interface關(guān)鍵字定義的接口,也稱(chēng)為接口類(lèi)型。接口是方法定義和常量定義的集合,與抽象類(lèi)共同組成系統(tǒng)的抽象層。接口中的變量默認(rèn)是publicstaticfinal修飾的,必須顯式初始化。方法默認(rèn)是publicabstract修飾的。接口可以繼承多個(gè)接口。類(lèi)可以實(shí)現(xiàn)多個(gè)接口。接口不可實(shí)例化,沒(méi)有構(gòu)造器。不可創(chuàng)建接口對(duì)象,但是可以定義接口類(lèi)型的引用,持有任何實(shí)現(xiàn)類(lèi)的對(duì)象。名字沖突在接口合并時(shí),多個(gè)父接口中有同名的常量和具有相同方法簽名的方法。如果有同名的常量,在實(shí)現(xiàn)類(lèi)中通過(guò)接口名.常量名,來(lái)訪問(wèn)不同接口中定義的常量。如果有相同的方法簽名而返回值類(lèi)型不同,則編譯報(bào)錯(cuò)。如果方法簽名和返回值類(lèi)型相同,在實(shí)現(xiàn)類(lèi)中只需實(shí)現(xiàn)一次。引用類(lèi)型轉(zhuǎn)換如果把引用變量轉(zhuǎn)換為父類(lèi)類(lèi)型、接口類(lèi)型或父接口類(lèi)型,則稱(chēng)為向上轉(zhuǎn)型。又稱(chēng)為隱式轉(zhuǎn)換。如果把引用變量轉(zhuǎn)換為子類(lèi)類(lèi)型、子接口類(lèi)型或?qū)崿F(xiàn)類(lèi)類(lèi)型,則稱(chēng)為向下轉(zhuǎn)型。又稱(chēng)為強(qiáng)制轉(zhuǎn)換。向上轉(zhuǎn)型總是安全的,向下轉(zhuǎn)型則不一定。多態(tài)分為靜態(tài)多態(tài)和動(dòng)態(tài)多態(tài)靜態(tài)多態(tài):在編譯時(shí),由Java編譯器根據(jù)參數(shù)列表的不同,來(lái)決定綁定相應(yīng)的重載的方法。動(dòng)態(tài)多態(tài):在程序運(yùn)行期間,由JVM根據(jù)引用變量實(shí)際引用的對(duì)象,來(lái)決定綁定相應(yīng)的方法。繼承的利弊利:容易進(jìn)行新的實(shí)現(xiàn),因?yàn)榇蠖鄶?shù)可以繼承而來(lái)。易于修改或擴(kuò)展那么被重用的實(shí)現(xiàn)。繼承的利弊弊:破壞了封裝性。當(dāng)父類(lèi)的實(shí)現(xiàn)更改時(shí),子類(lèi)也不得不更改。從父類(lèi)繼承來(lái)的實(shí)現(xiàn),在運(yùn)行時(shí)不可改變。組合的利弊利:封裝性好。通過(guò)對(duì)象的引用,在運(yùn)行時(shí)動(dòng)態(tài)改變。實(shí)現(xiàn)上的依賴(lài)性比較小。每個(gè)類(lèi)只專(zhuān)注于一項(xiàng)服務(wù)。弊:系統(tǒng)中的對(duì)象太多。使用原則盡量使用組合,慎用繼承。繼承的層次不可太多。繼承的頂層應(yīng)該為抽象父類(lèi)。接口與抽象類(lèi)相同點(diǎn):都代表系統(tǒng)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論