版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java面向?qū)ο蟮奶卣骼斫夥庋b性;掌握繼承的實現(xiàn)方法以及類成員的訪問和繼承原則理解抽象類和最終類的特點(diǎn)及使用場合掌握多態(tài)技術(shù)的具體形式與應(yīng)用理解接口的含義與作用,會使用接口進(jìn)行簡單的程序設(shè)計了解Java的常用類庫包教學(xué)目標(biāo)28十月2024在面向?qū)ο蟪绦蛟O(shè)計方法中,封裝是指,一種將抽象性函式接口的實作細(xì)節(jié)部份包裝、隱藏起來的方法。封裝可以被認(rèn)為是一個保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問。要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制。封裝是一種信息隱藏技術(shù),在java中通過關(guān)鍵字private實現(xiàn)封裝。詳見教材例題5-15.1封裝28十月2024繼承性反應(yīng)了類之間的一種關(guān)系。一個類可以繼承其他類的所有成員,包括成員變量和成員方法,該類還可以擁有自己的成員。被繼承的類稱之為父類,繼承后生成的新類稱之為子類。父類和子類之間是集成管理,又稱為派生關(guān)系。Java語言僅支持單繼承,即每個子類只允許一個父類,而不允許有多個父類。但是可以從一個父類中生成若干個子類。繼承不改變成員變量的訪問權(quán)限,父類中的公有成員、私有成員和保護(hù)成員,在子類中仍然是公有成員、私有成員和保護(hù)成員。5.2繼承28十月2024在講解繼承的基本概念之前,讀者可以先想一想這樣一個問題:現(xiàn)在假設(shè)有一個Person類,里面有name與age兩個屬性,而另外一個Student類,需要有name、age、school三個屬性,如圖5-1所示,從這里可以發(fā)現(xiàn)Person中已經(jīng)存在有name和age兩個屬性,所以不希望在Student類中再重新聲明這兩個屬性,這個時候就需要考慮是不是可以將Person類中的內(nèi)容繼續(xù)保留到Student類中,也就是引出了接下來所要介紹的類的繼承概念。5.2.1繼承的實現(xiàn)28十月202428十月2024圖5-1Student類與Person類在這里希望Student類能夠?qū)erson類的內(nèi)容繼承下來后繼續(xù)使用,可用圖5-2表示:圖5-2Student類與Person類繼承關(guān)系Java類的繼承格式如下:class子類名extends父類名{子類體}詳見教材例題5-228十月2024詳見教材例題5-3,5-4,5-55.2.2子類對象的實例化過程28十月2024從TestPersonStudentDemo1中讀者應(yīng)該可以發(fā)現(xiàn),super關(guān)鍵字出現(xiàn)在子類中,而且是去調(diào)用了父類中的構(gòu)造方法,所以可以得出結(jié)論:super主要的功能是完成子類調(diào)用父類中的內(nèi)容,也就是調(diào)用父類中的屬性或方法。詳見教材例題5-6super關(guān)鍵字不僅可以調(diào)用父類中的構(gòu)造方法,也可以調(diào)用父類中的屬性或方法,格式如下:super.父類中的屬性;super.父類中的方法();詳見教材例題5-7,5-8,5-95.2.3super關(guān)鍵字28十月20245.3.1抽象類與抽象方法類是對現(xiàn)實世界中實體的抽象,但我們不能以相同的方法為現(xiàn)實世界中所有的實體做模型,因為現(xiàn)實世界中大多數(shù)的類太抽象而不能獨(dú)立存在。例如:我們不能給出一個通用的計算二維圖形面積的方法。定義抽象類的一般格式如下:[訪問限定符]abstractclass類名{//屬性說明…//抽象方法聲明…//非抽象方法定義…}5.3抽象類和最終類28十月2024類中允許定義抽象方法。所謂抽象方法,是指在類中僅僅聲明了類的行為,并沒有真正實現(xiàn)行為的代碼,即只有方法頭、沒有方法體的方法。聲明抽象方法的一般格式如下:[訪問限定符]abstract數(shù)據(jù)類型方法名([參數(shù)列表]);例如:abstractvoiddraw();//聲明類中的draw()方法為抽象方發(fā)法
28十月2024有關(guān)抽象類和抽象方法的說明如下:抽象類只能被繼承而不能創(chuàng)建具體對象,即不能被實例化。2.抽象方法僅僅是為所有的派生子類定義一個統(tǒng)一的接口,方法具體實現(xiàn)的程序代碼由各個派生子類來完成,不同的子類可以根據(jù)自身的情況以不同的程序代碼實現(xiàn)。3.抽象方法只能存在于抽象類中,一個類中只要有一個方法是抽象的,則這個類就是抽象的。構(gòu)造方法、靜態(tài)(static)方法、最終(final)方法和私有(private)方法都不能被聲明為抽象方法。詳見教材例題5-1028十月20245.3.2最終類最終類是指不能被繼承的類。即最終類沒有子類。在Java語言中,如果不希望某個類被繼承,可以聲明這個類為最終類。最終類用關(guān)鍵字final來說明。例如:publicfinalclassC就定義類C為最終類。如果沒有必要創(chuàng)建最終類,而又想保護(hù)類中的一些方法不被覆蓋,可以用關(guān)鍵字final來指明那些不能被子類覆蓋的方法,這些方法稱為最終方法。例如:publicclassA{Publicfinalvoidf()}上例在類A中定義了一個最終方法f(),任何類A的子類都不能覆蓋方法f()。28十月2024多態(tài)是面向?qū)ο蟮闹匾匦?,簡單點(diǎn)說是“一個接口,多種實現(xiàn)”,就是指同一種事物表現(xiàn)出多種形態(tài)。編程其實就是一個將具體世界進(jìn)行抽象化的過程,多態(tài)就是抽象化的一種體現(xiàn),把一系列具體事物的共同點(diǎn)抽象出來,再通過這個抽象的事物,與不同的具體事物進(jìn)行對話。多態(tài)是指一個方法只能有一個名稱,但可以有許多形態(tài),也就是程序中可以定義多個同名的方法。多態(tài)提供了“接口與實現(xiàn)的分離”,將“是什么”與“怎么做”分離出來。多態(tài)主要分為方法的覆蓋和方法的重載。
5.4多態(tài)28十月20245.4.1方法的覆蓋覆蓋是發(fā)生在子類繼承父類過程中,對原有變量或方法進(jìn)行的覆蓋操作,是Java多態(tài)特性的一個重要體現(xiàn),表現(xiàn)在不用類之間子類對父類方法的覆蓋,改變父類方法原有的行為和意義。方法覆蓋:如果在子類中定義一個方法,其名稱、返回類型及參數(shù)簽名正好與父類中某個方法的名稱、返回類型及參數(shù)簽名相匹配,那么可以說,子類的方法覆蓋了父類的方法。詳見教材例題5-1128十月20245.4.2方法的重載在Java中,同一個類中的兩個或兩個以上的方法可以有同一個名字,只要它們的參數(shù)聲明不同即可。在這種情況下,該方法被稱為重載(Overloaded),這個過程被稱為方法重載(MethodOverloaded)。方法重載是Java實現(xiàn)多態(tài)的一種方式。當(dāng)一個重載方法被調(diào)用時,Java用參數(shù)的類型和(或)數(shù)量來表名實際調(diào)用的重載方法的版本。因此,每個重載方法的參數(shù)的類型和(或)數(shù)量必須是不同的。雖然每個重載方法可以有不同的返回類型,但返回類型并不足以區(qū)分所使用的是哪個方法。當(dāng)Java調(diào)用一個重載方法時,參數(shù)與調(diào)用參數(shù)匹配的方法被執(zhí)行。28十月2024項目方法重載方法覆蓋(重寫)類的層次針對同一個類中的同名方法針對父類與子類中的同名方法方法名稱各重載方法的名稱必須完全相同被繼承與繼承的方法名稱必須完全相同返回值類型各重載方法的返回值的類型必須完全相同被繼承與繼承的方法的返回值的類型必須完全相同參數(shù)類型各重載方法的參數(shù)類型可以不同被繼承與繼承方法的參數(shù)類型必須完全相同參數(shù)數(shù)目各重載方法的參數(shù)數(shù)目可以不同被繼承與繼承方法的參數(shù)數(shù)目必須完全相同表5-1成員方法的重載與覆蓋的區(qū)別詳見教材例題5-1228十月20245.5.1接口的概念在Java中接口是一個全部由抽象方法組成的集合,接口需要用interface定義,里面只能有抽象的方法和常量。接口體現(xiàn)的是事物擴(kuò)展的功能,在Java中,類定義了一個實體,包括實體的屬性,實體的行為。而接口定義了一個實體可能發(fā)生的動作,只有一個聲明,沒有具體的行為。當(dāng)一個方法在很多類中有不同的體現(xiàn)是時候這個時候就可以將這個方法抽象出來做成一個接口。接口里面只能有不可修改的全局常量,只能有抽象的方法,接口沒有構(gòu)造方法。5.5接口28十月20245.5.2接口的定義接口的定義格式如下:[public]interface接口名[extends父接口列表]//接口聲明{//接口體開始//常量數(shù)據(jù)成員的聲明及定義
數(shù)據(jù)類型
常量名=常數(shù)值;…//聲明抽象方法
返回值類型
方法名([參數(shù)列表])[throw異常列表];…}//接口體結(jié)束28十月2024說明如下:定義接口時使用interface定義,區(qū)別于抽象類,不需要加class。接口不能被實例化,不能直接創(chuàng)建對象,因為接口里面只有抽象的方法,沒有具體的功能。接口可以繼承接口,接口要實現(xiàn)具體的功能必須有實現(xiàn)他的子類,實現(xiàn)接口的子類中必須重寫接口全部的抽象方法。接口和接口之間可以多繼承。接口的子類可以是抽象類,但是沒有實際的意義。一個子類可以實現(xiàn)多個接口,通過implements關(guān)鍵字去實現(xiàn)。接口需要通過多態(tài)才能創(chuàng)建對象。28十月20245.5.3接口的實現(xiàn)接口的實現(xiàn),即在實現(xiàn)接口的類中重寫接口中給出的所有方法,書寫方法體代碼,完成方法所規(guī)定的功能。實現(xiàn)接口類的一般格式如下:[訪問限定符][修飾符]class類名[extends父類名]implements接口名列表{//類體開始標(biāo)志[類的成員變量說明]//屬性說明[類的構(gòu)造方法定義][類的成員方法定義]/*重寫接口方法*/接口方法定義//實現(xiàn)接口方法}下面舉例說明接口的實現(xiàn)。教材例題5-1328十月20245.6.1包的概念Java中的包package,就是電腦中的文件夾。我們平時在工作中,文件太多時,都會新建文件夾進(jìn)行分類管理,java中的包也是類似的道理,當(dāng)我們的類太多時,也需要進(jìn)行分類管理,這時我們就會把類文件放到包中,就是把這個.class文件放到了一個文件夾中,這樣也能有效地避免了命名沖突。5.6package關(guān)鍵字和包28十月20245.6.2包的創(chuàng)建通過關(guān)鍵字package來聲明包。格式如下:packagepackageName;其中,packageName是聲明的包名。Package語句作為Java源文件的第1條非空格、非注釋語句,指明該源文件定義的類所在的包。如果在源文件中省略了Package語句,則源文件中用戶定義命名的類被隱含地認(rèn)為是無名包的一部分,即源文件中用戶定義命名的類在同一個包中,但該包沒有名字。28十月20245.6.3包的引用創(chuàng)建一個包之后,就要對它進(jìn)行引用。一般來說,可以使用import
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老舊街區(qū)改造項目可行性研究報告
- 招標(biāo)投標(biāo)法課程設(shè)計
- 2024年度農(nóng)業(yè)項目融資擔(dān)保終止協(xié)議范本下載3篇
- 某高邊坡工程課程設(shè)計
- 2024年新型零售業(yè)態(tài)導(dǎo)購員崗位勞動合同范本3篇
- 比賽系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 2024年汽車租賃委托協(xié)議標(biāo)準(zhǔn)版版B版
- 2024年智能交通系統(tǒng)建設(shè)股權(quán)認(rèn)購與技術(shù)服務(wù)合同3篇
- 2024年版含第三方擔(dān)保的私人借款合同版
- 2024年度美容院燈箱廣告投放合同3篇
- 新入職員工年終工作總結(jié)課件
- 汽車吊籃使用專項施工方案
- 靜脈導(dǎo)管維護(hù)
- 普通邏輯學(xué)智慧樹知到期末考試答案章節(jié)答案2024年河海大學(xué)
- 帶你聽懂中國傳統(tǒng)音樂智慧樹知到期末考試答案2024年
- ISO9000質(zhì)量管理體系培訓(xùn)資料
- 煙草異物智能剔除系統(tǒng)技術(shù)參數(shù).
- 強(qiáng)制檢定工作計量器具目錄
- 大學(xué)基礎(chǔ)寫作--表達(dá)方式課件
- 300td高強(qiáng)瓦楞原紙廢紙制漿工段工藝設(shè)計
- 螺桿式風(fēng)冷冷水(熱泵)機(jī)組電路圖
評論
0/150
提交評論