物件導(dǎo)向程式設(shè)計課件_第1頁
物件導(dǎo)向程式設(shè)計課件_第2頁
物件導(dǎo)向程式設(shè)計課件_第3頁
物件導(dǎo)向程式設(shè)計課件_第4頁
物件導(dǎo)向程式設(shè)計課件_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章物件導(dǎo)向程式設(shè)計ObjectOrientedProgrammingDesign第七章物件導(dǎo)向程式設(shè)計ObjectOrientedPr1封包(package)封包是類別的集合,可以將已經(jīng)完成的類別,依照分類放在個別的目錄下便於整理預(yù)設(shè)封包(defaultpackage)不需加入任何封包卻可以使用各種的功能包含標準類別的預(yù)設(shè)封包為java.lang封包(package)封包是類別的集合,可以將已經(jīng)完成的類別2封包(續(xù))c:\javasample.javatestsdweight.java封包(續(xù))c:\javasample.javatestsdw3物件導(dǎo)向語言的基本特性封裝(encapsulation)根據(jù)類別成員的特性分成預(yù)設(shè)、private、protected、public等四個封裝等級,亦即存取類別成員的權(quán)限限制繼承(inheritance)建立新類別時,修改、添加或繼承現(xiàn)有類別的定義多型(polymorphism)又稱為同名異式,methodoverload即為多型的一種應(yīng)用,當一個新的類別繼承一個或多個以上的虛擬函數(shù)時,就稱為多型類別物件導(dǎo)向語言的基本特性封裝(encapsulation)4封裝(encapsulation)物件導(dǎo)向的最基本概念,分為以下四種特性預(yù)設(shè)不加private,protected,public等關(guān)鍵字private私有成員protected保護成員,用於繼承public公有成員封裝(encapsulation)物件導(dǎo)向的最基本概念,分為5封裝(續(xù))類別類別只會用到public與預(yù)設(shè)兩種,private與protected不可使用於類別預(yù)設(shè)的類別只能被同一個檔案裡的類別所存取public方式的類別則可以被其他檔案裡的類別所存取以之前計算標準體重的範例而言,倘若sdweight類別的存取方式改為預(yù)設(shè)的話,編譯時將會出現(xiàn)以下的錯誤訊息封裝(續(xù))類別6封裝(續(xù))類別成員類別成員分為變數(shù)與方法兩種預(yù)設(shè)其存取範圍為同一封包中的任何類別private其存取範圍為僅所在的類別可存取protected其存取範圍為同一封包中的任何類別,所有繼承的子類別,無論是否位於同一個封包public其存取範圍為任何封包中的任何類別封裝(續(xù))類別成員7封裝(續(xù))存取類型類別本身類別物件衍生類別衍生類別物件Private○×××Protected○×○×Public○○○○封裝(續(xù))存取類型類別本身類別物件衍生類別衍生類別物件Pri8物件導(dǎo)向程式設(shè)計課件9繼承(inheritance)使用繼承則不用重新撰寫重複的功能,直接繼承具有所需功能的類別即可,藉此縮短程式的開發(fā)時間繼承分為多重繼承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ù)有效範圍僅限於被直接繼承的baseclass呼叫格式super.<baseclass的變數(shù)或方法>假如是呼叫baseclass的constructor則用super()的方法才行繼承(續(xù))super13物件導(dǎo)向程式設(shè)計課件14繼承(續(xù))修改繼承的成員特性在衍生類別中,若新增的成員與baseclass中的成員名稱相同時,baseclass中的成員名稱將被隱藏起來,直接使用衍生類別中的成員內(nèi)容,此種方法可以達到修改繼承成員的結(jié)果繼承(續(xù))修改繼承的成員特性15物件導(dǎo)向程式設(shè)計課件16繼承(續(xù))衍生類別與建構(gòu)函數(shù)使用衍生類別建立物件時,會自動執(zhí)行baseclass的建構(gòu)函數(shù)當baseclass中有多個建構(gòu)函數(shù)時,則必須在衍生類別中使用super()命令,用以決定執(zhí)行哪一個建構(gòu)函數(shù)繼承(續(xù))衍生類別與建構(gòu)函數(shù)17物件導(dǎo)向程式設(shè)計課件18物件導(dǎo)向程式設(shè)計課件19繼承(續(xù))final若不加存取限制的話,方法可以被所繼承的類別繼續(xù)複載下去,變數(shù)可以任意變更數(shù)值,同樣的,類別也可以繼續(xù)被繼承下去,使用final關(guān)鍵字可以避免此種情形用在method表示method無法繼續(xù)被複載用在變數(shù)(類似C++中的#define)表示變數(shù)變?yōu)橐怀?shù),除了所屬的建構(gòu)函數(shù)可以設(shè)定初始值外,不能改變其值用在類別表示此類別將無法再被其他類別繼承繼承(續(xù))final20物件導(dǎo)向程式設(shè)計課件21繼承(續(xù))thisthis關(guān)鍵字會參考到物件自己本身通常在程式中被省略繼承(續(xù))this22繼承(續(xù))abstract(抽象)若在類別宣告處加上abstract關(guān)鍵字,表示這個類別式抽象類別抽象類別不能直接拿來建立物件,只能透過繼承來建立衍生類別在建立類別時,若有方法尚未決定如何設(shè)計時,卻又希望繼承的類別能時做這個方法,就可將此方法加上abstract抽象類別不一定要有抽象方法,但是,具有抽象方法的類別,一定要設(shè)為抽象類別繼承(續(xù))abstract(抽象)23物件導(dǎo)向程式設(shè)計課件24繼承(續(xù))interface(介面)Java裡沒有多重繼承,若要用到多重繼承,必須以interface為替代方案interfaceabstract多重繼承有無建構(gòu)函數(shù)不可以有可以有方法實作必須全部由繼承的類別實作可將全部或部分方法交由繼承的類別實作,或完全不給繼承的類別實作任何方法變數(shù)改變變數(shù)必須給定初始值,之後使用不可更改,相當於加上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è)計課件27多形(polymorphism)又稱為多態(tài)性,也是物件導(dǎo)向程式設(shè)計的重要概念之一,應(yīng)用多形特性提供統(tǒng)一的呼叫介面,程式會自動根據(jù)不同的需求(參數(shù)),執(zhí)行不同函數(shù)(方法)Overloading就是多形的一種應(yīng)用必須掌握兩個原則設(shè)定為被指定的變數(shù)必定是最底層被繼承的類別所使用的方法必須是被複載的方法多形(polymorphism)又稱為多態(tài)性,也是物件導(dǎo)向程28物件導(dǎo)向程式設(shè)計課件29多形(續(xù))多形概念應(yīng)用於類別時,可以使用抽象類別與方法,而當一個新類別繼承一個或多個以上的抽象方法時,就稱為多形類別。多形

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論