




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο竺嫦驅(qū)ο?封裝方法封裝邏輯,類封裝數(shù)據(jù)和方法。通過訪問控制機制,限制對數(shù)據(jù)和方法的訪問。成員變量都聲明為私有的。對成員變量的訪問都必須通過本類的方法。比如get/set方法對。封裝方法封裝邏輯,類封裝數(shù)據(jù)和方法。通過訪問控制機制,限制對2繼承類重用的兩種方式:繼承和組合。組合:在一個類中包含另外一個類的對象的引用。繼承類重用的兩種方式:繼承和組合。3繼承抽取各個子類的共同特性描述為一個父類。是實現(xiàn)一般—特殊關(guān)系的一種機制。一般—特殊關(guān)系:一個“特殊”類除了具有“一般”類的屬性和方法之外,還具有自己特有的屬性和方法。繼承的特征:從父類的角度叫做派生或擴展,從子類的角度叫繼承。構(gòu)造器和私有的成員不能被繼承。子類和父類不同包的情況下,只能繼承public和protected修飾的成員。繼承抽取各個子類的共同特性描述為一個父類。是實現(xiàn)一般—特殊關(guān)4繼承單一繼承:在Java語言中,一個子類只能有一個直接父類,而一個父類可以有多個直接子類。單根結(jié)構(gòu):在Java語言中,Object類是所有類的父類。繼承單一繼承:在Java語言中,一個子類只能有一個直接父類,5繼承對父類的兩種擴展方式:增加屬性和方法;覆蓋父類方法。覆蓋:在子類中定義一個與父類方法具有相同方法簽名的方法,以實現(xiàn)對父類方法的改造。繼承對父類的兩種擴展方式:增加屬性和方法;覆蓋父類方法。6覆蓋方法名和形參列表相同返回值類型相同或子類方法的返回值類型是父類方法返回值類型的子類型。訪問權(quán)限不能比被覆蓋方法更嚴(yán)格。不能拋出比被覆蓋方法更多的異常。靜態(tài)方法只能被靜態(tài)方法覆蓋,實例方法只能被實例方法覆蓋。覆蓋方法名和形參列表相同7成員變量隱藏在子類中定義與父類成員變量同名的成員變量。從而使父類該成員變量不能被子類繼承。與方法覆蓋的區(qū)別:在父類或子類中直接使用變量名訪問的一定是父類或子類的成員變量,而方法覆蓋則不一定。成員變量隱藏在子類中定義與父類成員變量同名的成員變量。從而使8動態(tài)綁定在程序運行期間,JVM根據(jù)對象的類型不同,綁定不同的方法。動態(tài)綁定在程序運行期間,JVM根據(jù)對象的類型不同,綁定不同的9super訪問父類的被覆蓋的方法和被隱藏的成員變量。訪問父類的構(gòu)造器,且放在構(gòu)造器的第一行代碼。不能同時訪問本類重載的構(gòu)造器和父類構(gòu)造器。super訪問父類的被覆蓋的方法和被隱藏的成員變量。10this代表當(dāng)前對象的引用。實例方法中隱式的包含一個this。通過this訪問本類重載的構(gòu)造器,且放在構(gòu)造器的第一行。this代表當(dāng)前對象的引用。11static靜態(tài)成員只于類有關(guān)與對象無關(guān)。被static修飾的成員稱為靜態(tài)成員??梢杂脕硇揎棾蓡T變量和非抽象方法。在本類中直接通過方法名和變量名來訪問。在其它類中通過類名來訪問。static靜態(tài)成員只于類有關(guān)與對象無關(guān)。12單子模式只產(chǎn)生該類的一個對象。單子模式只產(chǎn)生該類的一個對象。13final具有”不可改變”的含義??梢孕揎椃浅橄箢悾浅橄蠓椒?,屬性。final修飾的實例成員變量必須顯式初始化,在定義或者構(gòu)造器中。final修飾的靜態(tài)成員變量必須在定義時顯式初始化。final具有”不可改變”的含義??梢孕揎椃浅橄箢悾浅橄?4System.out.printlnout:是System類的PrintStream類型的靜態(tài)成員變量。println:是PrintStream的一個實例方法。toString:如果需要打印輸出自定義類的對象,則在自定義類中需要覆蓋toString方法。System.out.printlnout:是System類15抽象在父類或接口中盡量描述各個子類或?qū)崿F(xiàn)類需要實現(xiàn)的功能,而不具體實現(xiàn)。將實現(xiàn)交由各個子類或?qū)崿F(xiàn)類,根據(jù)自身的情況去實現(xiàn)。增強程序的靈活性和可維護(hù)性。抽象在父類或接口中盡量描述各個子類或?qū)崿F(xiàn)類需要實現(xiàn)的功能,而16abstract可以用來修飾類和方法,分別稱為抽象類和抽象方法。抽象類不能直接實例化。抽象方法只有方法定義,沒有方法體。抽象類中也有構(gòu)造器,以便子類構(gòu)造器調(diào)用。abstract可以用來修飾類和方法,分別稱為抽象類和抽象方17模版方法模式在抽象父類中定義一個操作中的算法的骨架,而將一些步驟延遲到子類中實現(xiàn)。代表這些具體邏輯步驟的方法稱為基本方法,代表算法骨架的方法稱為模版方法。角色:抽象模版角色,具體模版角色。模版方法模式在抽象父類中定義一個操作中的算法的骨架,而將一些18抽象模版角色定義一個或多個抽象操作,以便讓子類實現(xiàn)。這些抽象操作叫基本方法,它們是整個骨架操作的組成部分。定義并實現(xiàn)了一個模版方法。它實現(xiàn)了整體操作的骨架,而該整體操作由一個或多個抽象方法組成。這些抽象方法的具體邏輯由子類實現(xiàn)。該整體操作也有可能調(diào)用一些具體方法。抽象模版角色定義一個或多個抽象操作,以便讓子類實現(xiàn)。這些抽象19具體模版角色實現(xiàn)抽象父類所定義的一個或多個抽象方法。每個抽象模版可以有任意多個具體模版角色與之對應(yīng)。每個具體模版角色都可以給出這些抽象方法的不同實現(xiàn),從而使得模版方法的實現(xiàn)各不同。具體模版角色實現(xiàn)抽象父類所定義的一個或多個抽象方法。20開--閉原則一個軟件實體應(yīng)該對擴展開放,修改關(guān)閉。通過擴展已有的軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新需求。使變化中的軟件有一定的適應(yīng)性和靈活性。已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。開--閉原則一個軟件實體應(yīng)該對擴展開放,修改關(guān)閉。21接口有兩種含義第一,概念性的,是指系統(tǒng)中向外界提供的所有服務(wù)。類的所有能被外界訪問的方法稱為類的接口。第二,狹義的,就是interface關(guān)鍵字定義的接口,也稱為接口類型。接口有兩種含義22接口是方法定義和常量定義的集合,與抽象類共同組成系統(tǒng)的抽象層。接口中的變量默認(rèn)是publicstaticfinal修飾的,必須顯式初始化。方法默認(rèn)是publicabstract修飾的。接口可以繼承多個接口。類可以實現(xiàn)多個接口。接口不可實例化,沒有構(gòu)造器。不可創(chuàng)建接口對象,但是可以定義接口類型的引用,持有任何實現(xiàn)類的對象。接口是方法定義和常量定義的集合,與抽象類共同組成系統(tǒng)的抽象層23接口的合并子接口繼承多個父接口。實現(xiàn)類實現(xiàn)多個接口。接口的合并子接口繼承多個父接口。24名字沖突在接口合并時,多個父接口中有同名的常量和具有相同方法簽名的方法。如果有同名的常量,在實現(xiàn)類中通過接口名.常量名,來訪問不同接口中定義的常量。如果有相同的方法簽名而返回值類型不同,則編譯報錯。如果方法簽名和返回值類型相同,在實現(xiàn)類中只需實現(xiàn)一次。名字沖突在接口合并時,多個父接口中有同名的常量和具有相同方法25引用類型轉(zhuǎn)換如果把引用變量轉(zhuǎn)換為父類類型、接口類型或父接口類型,則稱為向上轉(zhuǎn)型。又稱為隱式轉(zhuǎn)換。如果把引用變量轉(zhuǎn)換為子類類型、子接口類型或?qū)崿F(xiàn)類類型,則稱為向下轉(zhuǎn)型。又稱為強制轉(zhuǎn)換。向上轉(zhuǎn)型總是安全的,向下轉(zhuǎn)型則不一定。引用類型轉(zhuǎn)換如果把引用變量轉(zhuǎn)換為父類類型、接口類型或父接口類26引用類型轉(zhuǎn)換對于引用,Java編譯器按照它所聲明的類型來處理。Java編譯器只允許一顆樹上的同一個樹枝上的類型之間進(jìn)行相互轉(zhuǎn)換。引用類型轉(zhuǎn)換對于引用,Java編譯器按照它所聲明的類型來處理27綁定將方法的調(diào)用連接到方法本身稱為綁定。靜態(tài)綁定:綁定發(fā)生在編譯期,稱為靜態(tài)綁定。動態(tài)綁定:程序運行時,根據(jù)對象的類型來決定該綁定哪個方法,稱為動態(tài)綁定。Java語言實現(xiàn)了動態(tài)綁定。綁定將方法的調(diào)用連接到方法本身稱為綁定。28多態(tài)分為靜態(tài)多態(tài)和動態(tài)多態(tài)靜態(tài)多態(tài):在編譯時,由Java編譯器根據(jù)參數(shù)列表的不同,來決定綁定相應(yīng)的重載的方法。動態(tài)多態(tài):在程序運行期間,由JVM根據(jù)引用變量實際引用的對象,來決定綁定相應(yīng)的方法。多態(tài)分為靜態(tài)多態(tài)和動態(tài)多態(tài)29繼承的利弊利:容易進(jìn)行新的實現(xiàn),因為大多數(shù)可以繼承而來。易于修改或擴展那么被重用的實現(xiàn)。繼承的利弊利:30繼承的利弊弊:破壞了封裝性。當(dāng)父類的實現(xiàn)更改時,子類也不得不更改。從父類繼承來的實現(xiàn),在運行時不可改變。繼承的利弊弊:31組合的利弊利:封裝性好。通過對象的引用,在運行時動態(tài)改變。實現(xiàn)上的依賴性比較小。每個類只專注于一項服務(wù)。弊:系統(tǒng)中的對象太多。組合的利弊利:32使用原則盡量使用組合,慎用繼承。繼承的層次不可太多。繼承的頂層應(yīng)該為抽象父類。使用原則盡量使用組合,慎用繼承。33接口與抽象類相同點:都代表系統(tǒng)的抽象。都不能直接實例化。都包含抽象方法。抽象方法一旦確定,則不能再修改。接口與抽象類相同點:34接口與抽象類不同點:抽象類可以提供部分實現(xiàn),從而避免在子類中重復(fù)實現(xiàn),提高代碼的重用性。一個類只能繼承一個父類,但是能實現(xiàn)多個接口。接口與抽象類不同點:35面向?qū)ο竺嫦驅(qū)ο?6封裝方法封裝邏輯,類封裝數(shù)據(jù)和方法。通過訪問控制機制,限制對數(shù)據(jù)和方法的訪問。成員變量都聲明為私有的。對成員變量的訪問都必須通過本類的方法。比如get/set方法對。封裝方法封裝邏輯,類封裝數(shù)據(jù)和方法。通過訪問控制機制,限制對37繼承類重用的兩種方式:繼承和組合。組合:在一個類中包含另外一個類的對象的引用。繼承類重用的兩種方式:繼承和組合。38繼承抽取各個子類的共同特性描述為一個父類。是實現(xiàn)一般—特殊關(guān)系的一種機制。一般—特殊關(guān)系:一個“特殊”類除了具有“一般”類的屬性和方法之外,還具有自己特有的屬性和方法。繼承的特征:從父類的角度叫做派生或擴展,從子類的角度叫繼承。構(gòu)造器和私有的成員不能被繼承。子類和父類不同包的情況下,只能繼承public和protected修飾的成員。繼承抽取各個子類的共同特性描述為一個父類。是實現(xiàn)一般—特殊關(guān)39繼承單一繼承:在Java語言中,一個子類只能有一個直接父類,而一個父類可以有多個直接子類。單根結(jié)構(gòu):在Java語言中,Object類是所有類的父類。繼承單一繼承:在Java語言中,一個子類只能有一個直接父類,40繼承對父類的兩種擴展方式:增加屬性和方法;覆蓋父類方法。覆蓋:在子類中定義一個與父類方法具有相同方法簽名的方法,以實現(xiàn)對父類方法的改造。繼承對父類的兩種擴展方式:增加屬性和方法;覆蓋父類方法。41覆蓋方法名和形參列表相同返回值類型相同或子類方法的返回值類型是父類方法返回值類型的子類型。訪問權(quán)限不能比被覆蓋方法更嚴(yán)格。不能拋出比被覆蓋方法更多的異常。靜態(tài)方法只能被靜態(tài)方法覆蓋,實例方法只能被實例方法覆蓋。覆蓋方法名和形參列表相同42成員變量隱藏在子類中定義與父類成員變量同名的成員變量。從而使父類該成員變量不能被子類繼承。與方法覆蓋的區(qū)別:在父類或子類中直接使用變量名訪問的一定是父類或子類的成員變量,而方法覆蓋則不一定。成員變量隱藏在子類中定義與父類成員變量同名的成員變量。從而使43動態(tài)綁定在程序運行期間,JVM根據(jù)對象的類型不同,綁定不同的方法。動態(tài)綁定在程序運行期間,JVM根據(jù)對象的類型不同,綁定不同的44super訪問父類的被覆蓋的方法和被隱藏的成員變量。訪問父類的構(gòu)造器,且放在構(gòu)造器的第一行代碼。不能同時訪問本類重載的構(gòu)造器和父類構(gòu)造器。super訪問父類的被覆蓋的方法和被隱藏的成員變量。45this代表當(dāng)前對象的引用。實例方法中隱式的包含一個this。通過this訪問本類重載的構(gòu)造器,且放在構(gòu)造器的第一行。this代表當(dāng)前對象的引用。46static靜態(tài)成員只于類有關(guān)與對象無關(guān)。被static修飾的成員稱為靜態(tài)成員??梢杂脕硇揎棾蓡T變量和非抽象方法。在本類中直接通過方法名和變量名來訪問。在其它類中通過類名來訪問。static靜態(tài)成員只于類有關(guān)與對象無關(guān)。47單子模式只產(chǎn)生該類的一個對象。單子模式只產(chǎn)生該類的一個對象。48final具有”不可改變”的含義。可以修飾非抽象類,非抽象方法,屬性。final修飾的實例成員變量必須顯式初始化,在定義或者構(gòu)造器中。final修飾的靜態(tài)成員變量必須在定義時顯式初始化。final具有”不可改變”的含義??梢孕揎椃浅橄箢?,非抽象49System.out.printlnout:是System類的PrintStream類型的靜態(tài)成員變量。println:是PrintStream的一個實例方法。toString:如果需要打印輸出自定義類的對象,則在自定義類中需要覆蓋toString方法。System.out.printlnout:是System類50抽象在父類或接口中盡量描述各個子類或?qū)崿F(xiàn)類需要實現(xiàn)的功能,而不具體實現(xiàn)。將實現(xiàn)交由各個子類或?qū)崿F(xiàn)類,根據(jù)自身的情況去實現(xiàn)。增強程序的靈活性和可維護(hù)性。抽象在父類或接口中盡量描述各個子類或?qū)崿F(xiàn)類需要實現(xiàn)的功能,而51abstract可以用來修飾類和方法,分別稱為抽象類和抽象方法。抽象類不能直接實例化。抽象方法只有方法定義,沒有方法體。抽象類中也有構(gòu)造器,以便子類構(gòu)造器調(diào)用。abstract可以用來修飾類和方法,分別稱為抽象類和抽象方52模版方法模式在抽象父類中定義一個操作中的算法的骨架,而將一些步驟延遲到子類中實現(xiàn)。代表這些具體邏輯步驟的方法稱為基本方法,代表算法骨架的方法稱為模版方法。角色:抽象模版角色,具體模版角色。模版方法模式在抽象父類中定義一個操作中的算法的骨架,而將一些53抽象模版角色定義一個或多個抽象操作,以便讓子類實現(xiàn)。這些抽象操作叫基本方法,它們是整個骨架操作的組成部分。定義并實現(xiàn)了一個模版方法。它實現(xiàn)了整體操作的骨架,而該整體操作由一個或多個抽象方法組成。這些抽象方法的具體邏輯由子類實現(xiàn)。該整體操作也有可能調(diào)用一些具體方法。抽象模版角色定義一個或多個抽象操作,以便讓子類實現(xiàn)。這些抽象54具體模版角色實現(xiàn)抽象父類所定義的一個或多個抽象方法。每個抽象模版可以有任意多個具體模版角色與之對應(yīng)。每個具體模版角色都可以給出這些抽象方法的不同實現(xiàn),從而使得模版方法的實現(xiàn)各不同。具體模版角色實現(xiàn)抽象父類所定義的一個或多個抽象方法。55開--閉原則一個軟件實體應(yīng)該對擴展開放,修改關(guān)閉。通過擴展已有的軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新需求。使變化中的軟件有一定的適應(yīng)性和靈活性。已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。開--閉原則一個軟件實體應(yīng)該對擴展開放,修改關(guān)閉。56接口有兩種含義第一,概念性的,是指系統(tǒng)中向外界提供的所有服務(wù)。類的所有能被外界訪問的方法稱為類的接口。第二,狹義的,就是interface關(guān)鍵字定義的接口,也稱為接口類型。接口有兩種含義57接口是方法定義和常量定義的集合,與抽象類共同組成系統(tǒng)的抽象層。接口中的變量默認(rèn)是publicstaticfinal修飾的,必須顯式初始化。方法默認(rèn)是publicabstract修飾的。接口可以繼承多個接口。類可以實現(xiàn)多個接口。接口不可實例化,沒有構(gòu)造器。不可創(chuàng)建接口對象,但是可以定義接口類型的引用,持有任何實現(xiàn)類的對象。接口是方法定義和常量定義的集合,與抽象類共同組成系統(tǒng)的抽象層58接口的合并子接口繼承多個父接口。實現(xiàn)類實現(xiàn)多個接口。接口的合并子接口繼承多個父接口。59名字沖突在接口合并時,多個父接口中有同名的常量和具有相同方法簽名的方法。如果有同名的常量,在實現(xiàn)類中通過接口名.常量名,來訪問不同接口中定義的常量。如果有相同的方法簽名而返回值類型不同,則編譯報錯。如果方法簽名和返回值類型相同,在實現(xiàn)類中只需實現(xiàn)一次。名字沖突在接口合并時,多個父接口中有同名的常量和具有相同方法60引用類型轉(zhuǎn)換如果把引用變量轉(zhuǎn)換為父類類型、接口類型或父接口類型,則稱為向上轉(zhuǎn)型。又稱為隱式轉(zhuǎn)換。如果把引用變量轉(zhuǎn)換為子類類型、子接口類型或?qū)崿F(xiàn)類類型,則稱為向下轉(zhuǎn)型。又稱為強制轉(zhuǎn)換。向上轉(zhuǎn)型總是安全的,向下轉(zhuǎn)型則不一定。引用類型轉(zhuǎn)換如果把引用變量轉(zhuǎn)換為父類類型、接口類型或父接口類61引用類
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于馬爾科夫決策過程的無人機避撞研究
- 預(yù)防醫(yī)學(xué)肝癌
- 餐飲公司學(xué)習(xí)培訓(xùn)后實施策略
- 廣州物流管理專員職位簡歷
- 趾腱筋膜炎的癥狀及護(hù)理
- 裝修業(yè)財務(wù)培訓(xùn)
- 銀行服務(wù)投訴培訓(xùn)
- 山西省晉城市2024-2025學(xué)年高一上學(xué)期期末考試歷史試題 含解析
- 跨境貿(mào)易質(zhì)量保證與責(zé)任豁免協(xié)議
- 裝卸操作安全培訓(xùn)
- 基于三菱FX系列PLC的五層電梯控制系統(tǒng)
- 溫室韭菜收割機設(shè)計學(xué)士學(xué)位論文
- 女性私密健康
- 思想道德與法治知到章節(jié)答案智慧樹2023年寧波大學(xué)
- 農(nóng)田土地翻耕合同
- 鐵路混凝土工程施工質(zhì)量驗收標(biāo)準(zhǔn)(TB 10424-2018 )培訓(xùn)教材
- 2023年全國醫(yī)學(xué)博士英語統(tǒng)考真題及參考答案
- 浙江新聞獎副刊類參評作品推薦表
- 人才培養(yǎng)方案執(zhí)行情況及總結(jié)
- 煤層氣開采地面工程設(shè)計方案
- xxx年國企集團公司職工代表大會制度 企業(yè)職工代表大會制度
評論
0/150
提交評論