版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章物件導(dǎo)向程式設(shè)計(jì)ObjectOrientedProgrammingDesign第七章物件導(dǎo)向程式設(shè)計(jì)ObjectOrientedPr1封包(package)封包是類別的集合,可以將已經(jīng)完成的類別,依照分類放在個(gè)別的目錄下便於整理預(yù)設(shè)封包(defaultpackage)不需加入任何封包卻可以使用各種的功能包含標(biāo)準(zhǔn)類別的預(yù)設(shè)封包為java.lang封包(package)封包是類別的集合,可以將已經(jīng)完成的類別2封包(續(xù))c:\javasample.javatestsdweight.java封包(續(xù))c:\javasample.javatestsdw3物件導(dǎo)向語(yǔ)言的基本特性封裝(encapsulation)根據(jù)類別成員的特性分成預(yù)設(shè)、private、protected、public等四個(gè)封裝等級(jí),亦即存取類別成員的權(quán)限限制繼承(inheritance)建立新類別時(shí),修改、添加或繼承現(xiàn)有類別的定義多型(polymorphism)又稱為同名異式,methodoverload即為多型的一種應(yīng)用,當(dāng)一個(gè)新的類別繼承一個(gè)或多個(gè)以上的虛擬函數(shù)時(shí),就稱為多型類別物件導(dǎo)向語(yǔ)言的基本特性封裝(encapsulation)4封裝(encapsulation)物件導(dǎo)向的最基本概念,分為以下四種特性預(yù)設(shè)不加private,protected,public等關(guān)鍵字private私有成員protected保護(hù)成員,用於繼承public公有成員封裝(encapsulation)物件導(dǎo)向的最基本概念,分為5封裝(續(xù))類別類別只會(huì)用到public與預(yù)設(shè)兩種,private與protected不可使用於類別預(yù)設(shè)的類別只能被同一個(gè)檔案裡的類別所存取public方式的類別則可以被其他檔案裡的類別所存取以之前計(jì)算標(biāo)準(zhǔn)體重的範(fàn)例而言,倘若sdweight類別的存取方式改為預(yù)設(shè)的話,編譯時(shí)將會(huì)出現(xiàn)以下的錯(cuò)誤訊息封裝(續(xù))類別6封裝(續(xù))類別成員類別成員分為變數(shù)與方法兩種預(yù)設(shè)其存取範(fàn)圍為同一封包中的任何類別private其存取範(fàn)圍為僅所在的類別可存取protected其存取範(fàn)圍為同一封包中的任何類別,所有繼承的子類別,無(wú)論是否位於同一個(gè)封包public其存取範(fàn)圍為任何封包中的任何類別封裝(續(xù))類別成員7封裝(續(xù))存取類型類別本身類別物件衍生類別衍生類別物件Private○×××Protected○×○×Public○○○○封裝(續(xù))存取類型類別本身類別物件衍生類別衍生類別物件Pri8物件導(dǎo)向程式設(shè)計(jì)課件9繼承(inheritance)使用繼承則不用重新撰寫重複的功能,直接繼承具有所需功能的類別即可,藉此縮短程式的開發(fā)時(shí)間繼承分為多重繼承Java不具有多重繼承的功能單一繼承Java僅具有單一繼承的功能繼承(inheritance)使用繼承則不用重新撰寫重複的功10繼承(續(xù))被繼承的類別稱為父類別或基類別(baseclass/parentclass/superclass),經(jīng)由繼承產(chǎn)生的類別稱為子類別或衍生類別(derivedclass/subclass/childclass)ClassAClassBinheritancebaseclassderivedclass繼承(續(xù))被繼承的類別稱為父類別或基類別(baseclas11繼承(續(xù))extends用以繼承關(guān)係的關(guān)鍵字classderived_class_nameextendsbase_class_name{…}繼承(續(xù))extendsclassderived_clas12繼承(續(xù))super可存取所繼承的baseclass(parentclass,superclass)資訊,包括被overload的method及變數(shù)有效範(fàn)圍僅限於被直接繼承的baseclass呼叫格式super.<baseclass的變數(shù)或方法>假如是呼叫baseclass的constructor則用super()的方法才行繼承(續(xù))super13物件導(dǎo)向程式設(shè)計(jì)課件14繼承(續(xù))修改繼承的成員特性在衍生類別中,若新增的成員與baseclass中的成員名稱相同時(shí),baseclass中的成員名稱將被隱藏起來,直接使用衍生類別中的成員內(nèi)容,此種方法可以達(dá)到修改繼承成員的結(jié)果繼承(續(xù))修改繼承的成員特性15物件導(dǎo)向程式設(shè)計(jì)課件16繼承(續(xù))衍生類別與建構(gòu)函數(shù)使用衍生類別建立物件時(shí),會(huì)自動(dòng)執(zhí)行baseclass的建構(gòu)函數(shù)當(dāng)baseclass中有多個(gè)建構(gòu)函數(shù)時(shí),則必須在衍生類別中使用super()命令,用以決定執(zhí)行哪一個(gè)建構(gòu)函數(shù)繼承(續(xù))衍生類別與建構(gòu)函數(shù)17物件導(dǎo)向程式設(shè)計(jì)課件18物件導(dǎo)向程式設(shè)計(jì)課件19繼承(續(xù))final若不加存取限制的話,方法可以被所繼承的類別繼續(xù)複載下去,變數(shù)可以任意變更數(shù)值,同樣的,類別也可以繼續(xù)被繼承下去,使用final關(guān)鍵字可以避免此種情形用在method表示method無(wú)法繼續(xù)被複載用在變數(shù)(類似C++中的#define)表示變數(shù)變?yōu)橐怀?shù),除了所屬的建構(gòu)函數(shù)可以設(shè)定初始值外,不能改變其值用在類別表示此類別將無(wú)法再被其他類別繼承繼承(續(xù))final20物件導(dǎo)向程式設(shè)計(jì)課件21繼承(續(xù))thisthis關(guān)鍵字會(huì)參考到物件自己本身通常在程式中被省略繼承(續(xù))this22繼承(續(xù))abstract(抽象)若在類別宣告處加上abstract關(guān)鍵字,表示這個(gè)類別式抽象類別抽象類別不能直接拿來建立物件,只能透過繼承來建立衍生類別在建立類別時(shí),若有方法尚未決定如何設(shè)計(jì)時(shí),卻又希望繼承的類別能時(shí)做這個(gè)方法,就可將此方法加上abstract抽象類別不一定要有抽象方法,但是,具有抽象方法的類別,一定要設(shè)為抽象類別繼承(續(xù))abstract(抽象)23物件導(dǎo)向程式設(shè)計(jì)課件24繼承(續(xù))interface(介面)Java裡沒有多重繼承,若要用到多重繼承,必須以interface為替代方案interfaceabstract多重繼承有無(wú)建構(gòu)函數(shù)不可以有可以有方法實(shí)作必須全部由繼承的類別實(shí)作可將全部或部分方法交由繼承的類別實(shí)作,或完全不給繼承的類別實(shí)作任何方法變數(shù)改變變數(shù)必須給定初始值,之後使用不可更改,相當(dāng)於加上final關(guān)鍵字可以更改變數(shù)繼承有有繼承(續(xù))interface(介面)interfaceabs25繼承(續(xù))interface的基本架構(gòu)interfacebase1{voidfun1(args1,args2,…){…}}interfacebase2{voidfun2(args1,args2,…){…}}classsub1implementsbase1,base2{
publicvoidfun1(args1,args2,…){…}
publicvoidfun2(args1,args2,…){…}}繼承(續(xù))interface的基本架構(gòu)interfaceb26物件導(dǎo)向程式設(shè)計(jì)課件27多形(polymorphism)又稱為多態(tài)性,也是物件導(dǎo)向程式設(shè)計(jì)的重要概念之一,應(yīng)用多形特性提供統(tǒng)一的呼叫介面,程式會(huì)自動(dòng)根據(jù)不同的需求(參數(shù)),執(zhí)行不同函數(shù)(方法)Overloading就是多形的一種應(yīng)用必須掌握兩個(gè)原則設(shè)定為被指定的變數(shù)必定是最底層被繼承的類別所使用的方法必須是被複載的方法多形(polymorphism)又稱為多態(tài)性,也是物件導(dǎo)向程28物件導(dǎo)向程式設(shè)計(jì)課件29多形(續(xù))多形概念應(yīng)用於類別時(shí),可以使用抽象類別與方法,而當(dāng)一個(gè)新類別繼承一個(gè)或多個(gè)以上的抽象方法時(shí),就稱為多形類別。多形
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度人工智能產(chǎn)業(yè)投資轉(zhuǎn)借款合作協(xié)議模板3篇
- 國(guó)防建設(shè)知識(shí)
- 二零二五年度個(gè)人知識(shí)產(chǎn)權(quán)侵權(quán)糾紛授權(quán)委托書3篇
- 二零二五年度商場(chǎng)消防安全責(zé)任協(xié)議書3篇
- 二零二五年度城市停車場(chǎng)信息化建設(shè)承包協(xié)議3篇
- 二零二五年辦公樓智能安防與保潔服務(wù)合同3篇
- 二零二五版海洋石油鉆井平臺(tái)外派海員聘用合同范本3篇
- 二零二五年度商品房團(tuán)購(gòu)項(xiàng)目合作代理協(xié)議3篇
- 二零二五年度高校研究生學(xué)術(shù)交流活動(dòng)合作協(xié)議3篇
- 藝術(shù)地坪施工方案
- 托育園老師培訓(xùn)
- 《阻燃材料與技術(shù)》-顏龍 習(xí)題解答
- 脊柱外科護(hù)理進(jìn)修心得
- 4.1中國(guó)特色社會(huì)主義進(jìn)入新時(shí)代+課件-2024-2025學(xué)年高中政治統(tǒng)編版必修一中國(guó)特色社會(huì)主義
- 2024-2030年中國(guó)食品飲料灌裝設(shè)備行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 建筑結(jié)構(gòu)課程設(shè)計(jì)成果
- 班級(jí)建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- T-TJSG 001-2024 天津市社會(huì)組織社會(huì)工作專業(yè)人員薪酬指導(dǎo)方案
- 人教版九上化學(xué)第二單元課題2氧氣課件
- 纖維增強(qiáng)復(fù)合材料 單向增強(qiáng)材料Ⅰ型-Ⅱ 型混合層間斷裂韌性的測(cè)定 編制說明
- 習(xí)近平法治思想概論教學(xué)課件緒論
評(píng)論
0/150
提交評(píng)論