Java程序設(shè)計(jì)單元4解析課件_第1頁
Java程序設(shè)計(jì)單元4解析課件_第2頁
Java程序設(shè)計(jì)單元4解析課件_第3頁
Java程序設(shè)計(jì)單元4解析課件_第4頁
Java程序設(shè)計(jì)單元4解析課件_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單元4設(shè)計(jì)應(yīng)用程序的類與接口4.1引導(dǎo)資料階段一:類4.2[引導(dǎo)任務(wù)4-1]定義菜品類4.3知識解析4.4訓(xùn)練任務(wù)返回下一頁單元4設(shè)計(jì)應(yīng)用程序的類與接口4.1引導(dǎo)資料返回下一頁單元4設(shè)計(jì)應(yīng)用程序的類與接口階段二:對象4.5[引導(dǎo)任務(wù)4-2]為菜品類添加主方法4.6知識剖析4.7訓(xùn)練任務(wù)上一頁下一頁返回單元4設(shè)計(jì)應(yīng)用程序的類與接口階段二:對象上一頁下一頁返回單元4設(shè)計(jì)應(yīng)用程序的類與接口階段三:繼承4.8[引導(dǎo)任務(wù)4-3]實(shí)現(xiàn)餐飲管理系統(tǒng)消費(fèi)結(jié)算功能4.9知識解析4.10訓(xùn)練任務(wù)上一頁下一頁返回單元4設(shè)計(jì)應(yīng)用程序的類與接口階段三:繼承上一頁下一頁返回單元4設(shè)計(jì)應(yīng)用程序的類與接口階段四:接口4.11[引導(dǎo)任務(wù)4-4]自定義一個用于消費(fèi)結(jié)算的接口4.12知識剖析4.13訓(xùn)練任務(wù)上一頁返回單元4設(shè)計(jì)應(yīng)用程序的類與接口階段四:接口上一頁返回4.1引導(dǎo)資料4.1.1面向?qū)ο蟮幕靖拍?/p>

(1)對象(Object)

對象由屬性(Attribute)和行為(Action)兩部分組成,是數(shù)據(jù)和行為的統(tǒng)一體。屬性是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項(xiàng),行為是用來描述對象動態(tài)特征的一個操作。一個對象可以是一個手機(jī)或用戶界面的一個窗口,事實(shí)上它可以是任何東西每一種對象都有各自的內(nèi)部狀態(tài)和運(yùn)動規(guī)律,不同對象之間的相互聯(lián)系和相互作用就構(gòu)成了各種不同的系統(tǒng)。下一頁返回4.1引導(dǎo)資料4.1.1面向?qū)ο蟮幕靖拍钕乱豁摲祷?.1引導(dǎo)資料(2)類(Class)

共享同一屬性和方法集的所有對象的集合構(gòu)成類。類是Java語言面向?qū)ο缶幊痰幕驹?,它定義了一個對象的結(jié)構(gòu)和行為。它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和行為兩個主要部分,簡單的說類是對象集合的再抽象。類與對象的關(guān)系如同一個模具與用這個模具鑄造出來的產(chǎn)品之間的關(guān)系。類給出了屬于該類的全部對象的抽象定義,而對象則是符合這種定義的一個實(shí)體。上一頁下一頁返回4.1引導(dǎo)資料(2)類(Class)上一頁下一頁返回4.1引導(dǎo)資料(3)消息(message)

為了能完成固有的任務(wù),對象需要與其他對象進(jìn)行互操作,這是連接對象與外部世界的唯一通道?;ゲ僮骺赡馨l(fā)生在同一個類的不同對象之間,或是不同類的對象之間通過發(fā)送消息給其他對象,傳遞消息或請求動作,使互操作得到處理例如,當(dāng)一個用戶按下鼠標(biāo),選擇了屏幕上對話框里的一個命令按鈕,一條消息就發(fā)給了對話框?qū)ο螅ㄖ畎粹o被按下了。消息可用來改變對象的狀態(tài)或請求該對象完成一個動作。上一頁下一頁返回4.1引導(dǎo)資料(3)消息(message)上一頁下一頁返4.1引導(dǎo)資料(4)接口(interface

接口是一個類所具有的方法的特征集合,是一種邏輯上的抽象。接口是消息的通道,通過接口,消息才能傳遞到具體的處理方法中進(jìn)行處理。接口把方法的特征和方法的實(shí)現(xiàn)分割開來。這種分割體現(xiàn)在接口常常代表一個角色,它包括與該角色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個接口的類便是扮演這個角色的演員。一個角色由不同的演員來演,而不同的演員之間除了扮演一個共同的角色之外并不要求有其他的共同之處。上一頁下一頁返回4.1引導(dǎo)資料(4)接口(interface上一頁下一頁4.1引導(dǎo)資料4.1.2面向?qū)ο蟮奶匦悦嫦驅(qū)ο蠹夹g(shù)的基本特征主要有抽象性、封裝性、繼承性和多態(tài)性

(1)抽象性抽象(Abstract)是一種機(jī)制,就是忽略事物中與當(dāng)前目標(biāo)無關(guān)的非本質(zhì)特征,更充分地注意與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征它使得復(fù)雜的、真實(shí)世界的情況可以通過簡單的模型被表不出來,是真實(shí)世界的對象或概念的模型例如,在設(shè)計(jì)一個學(xué)生成績管理系統(tǒng)的過程中,考查學(xué)生李三這個對象時(shí),就只關(guān)心他的姓名、課程、成績等,而忽略他的出生時(shí)間、視力等信息.上一頁下一頁返回4.1引導(dǎo)資料4.1.2面向?qū)ο蟮奶匦陨弦豁撓乱豁摲祷?.1引導(dǎo)資料(2)封裝性封裝(Encapsulation)就是把對象的屬性和行為結(jié)合成一個獨(dú)立的單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)對相關(guān)思想的抽象被封裝在一個單元里,將抽象出來的狀態(tài)和行為結(jié)合在一個封裝的整體里,這個封裝體稱為類對系統(tǒng)的其他部分來說,狀態(tài)和行為的真實(shí)內(nèi)部實(shí)現(xiàn)被隱藏起來了在Java中,通過在類定義里面來定義屬性和方法的方式強(qiáng)制實(shí)現(xiàn)封裝過程。上一頁下一頁返回4.1引導(dǎo)資料(2)封裝性上一頁下一頁返回4.1引導(dǎo)資料(3)繼承性繼承(Inheritance)是一種聯(lián)結(jié)類與類的層次模型。繼承性是指特殊類的對象擁有其一般類的屬性和行為,繼承意味著“自動地?fù)碛小?,即特殊類中不必重新定義已在一般類中定義過的屬性和行為,而它卻自動地、隱含地?fù)碛衅湟话泐惖膶傩耘c行為。繼承允許和鼓勵類的重用,提供了一種明確表述共性的方法一個特殊類既有自己新定義的屬性和行為,又有繼承下來的屬性和行為。盡管繼承下來的屬性和行為是隱式的,但無論在概念上還是在實(shí)際效果上,都是這個類的屬性和行為當(dāng)這個特殊類又被它更下層的特殊類繼承時(shí),它繼承來的和自己定義的屬性和行為又被下一層的特殊類繼承下去因此,繼承是傳遞的,體現(xiàn)了大自然中特殊與一般的關(guān)系上一頁下一頁返回4.1引導(dǎo)資料(3)繼承性上一頁下一頁返回4.1引導(dǎo)資料(4)多態(tài)性多態(tài)性(Polymorphism)是面向?qū)ο笙到y(tǒng)最終表現(xiàn)出來的基本特征。當(dāng)使用繼承擴(kuò)展通用的類來得到特殊的類時(shí),通常也會對通用類的一些行為進(jìn)行擴(kuò)展。特殊類常常會實(shí)現(xiàn)與通用類有些差別的行為,但是行為的名字會保持一樣給定一個對象實(shí)例,正確地使用它的行為非常重要,而多態(tài)性保證這一點(diǎn)自動并且無縫地實(shí)現(xiàn)具體來說,多態(tài)性是指類中同一函數(shù)名對應(yīng)多個具有相似功能的不同函數(shù),可以使用相同的調(diào)用方式來調(diào)用這些具有不同功能的同名函數(shù)繼承性和多態(tài)性的結(jié)合,可以生成一系列雖類似但獨(dú)一無二的對象由于繼承性,這些對象共享許多相似的特征;由于多態(tài)性,釗對相同的消息,不同對象可以有獨(dú)特的表現(xiàn)方式,實(shí)現(xiàn)特性化的設(shè)計(jì)。上一頁返回4.1引導(dǎo)資料(4)多態(tài)性上一頁返回4.2[引導(dǎo)任務(wù)4一1]定義菜品類4.2.1任務(wù)要求與目標(biāo)

(1)任務(wù)目標(biāo)能定義類

(2)設(shè)計(jì)要求要能描述菜品的名稱、編號、單價(jià)等有關(guān)特性,并提供獲取菜的名稱、單價(jià)及編號等相關(guān)屬性的獲取與設(shè)置值的方法下一頁返回4.2[引導(dǎo)任務(wù)4一1]定義菜品類4.2.1任務(wù)要4.2[引導(dǎo)任務(wù)4一1]4.2.2實(shí)施過程在NetBeans中打開項(xiàng)目repast,然后在該項(xiàng)目中新建一個包c(diǎn)h04.partl,再在ch04.partl包中新建一個類TestVegtable,并為該類添加如下代碼,最后保存、編譯上一頁下一頁返回4.2[引導(dǎo)任務(wù)4一1]4.2.2實(shí)施過程上一頁下一頁4.2[引導(dǎo)任務(wù)4一1]上一頁下一頁返回4.2[引導(dǎo)任務(wù)4一1]上一頁下一頁返回4.2[引導(dǎo)任務(wù)4一1]上一頁返回4.2[引導(dǎo)任務(wù)4一1]上一頁返回4.3知識解析4.3.1類的聲明在Java程序里,一個類定義了一個對象的結(jié)構(gòu)和它的功能,以將要表達(dá)的概念信息抽象封裝在這個類里,封裝好的各種功能稱為成員方法當(dāng)Java程序運(yùn)行時(shí),系統(tǒng)用類來創(chuàng)建類的實(shí)例,類的實(shí)例就是真正的對象類定義的一般形式如下:

「訪問控制修飾]}[abstract][final]<class><類名>[extend父類][implements接口列表]「throws異常類型列表]{

類體[成員變量和成員方法]}下一頁返回4.3知識解析4.3.1類的聲明下一頁返回4.3知識解析4.3.2成員變量類的成員變量表明類的狀態(tài),成員變量也稱為實(shí)例變量成員變量的定義格式如下:[訪問控制修飾符][static][final][transients][volatile]<數(shù)據(jù)類型><成員變量名稱>上一頁下一頁返回4.3知識解析4.3.2成員變量上一頁下一頁返回4.3知識解析4.3.3成員方法

類的方法實(shí)現(xiàn)了類所具有的行為,其他對象可以根據(jù)類的方法對類進(jìn)行訪問成員方法的定義格式如下:[訪問控制修飾符][static][final[abstract][native][synchronized}<返回值類型><方法名>(參數(shù)表)[throws異常類型][方法體]上一頁下一頁返回4.3知識解析4.3.3成員方法上一頁下一頁返回4.3知識解析4.3.4構(gòu)造方法構(gòu)造方法可視為一種特殊的方法,它用于對象被創(chuàng)建時(shí)初始化成員變量或?qū)ο?,它具有和它所在的類名完全一樣的名字?gòu)造方法定義后,創(chuàng)建對象時(shí)就會自動調(diào)用它構(gòu)造方法沒有返}。!類型,這是因?yàn)橐粋€類的構(gòu)造方法的返回類型就是類本身在以前的大部分程序中均定義了構(gòu)造方法,這些構(gòu)造方法沒有定義其該完成什么工作,亦即空的構(gòu)造方法,格式如下:publicclassName(){}上一頁下一頁返回4.3知識解析4.3.4構(gòu)造方法上一頁下一頁返回4.3知識解析4.3.5this

在編寫類時(shí),有時(shí)需要引用此類的方法或變量,Java通過this來實(shí)現(xiàn)此功能this、代表了當(dāng)前對象的一個引用,可將其看做是對象的另一個名字,通過this可以在任何方法中引用當(dāng)前的對象。4.3.6方法重載在Java中,同一個類中可以有2個或2個以上的方法用同一個名字,只要它們的參數(shù)。聲明或返回值類型不同,該方法就被稱為重載(overloaded),這個過程稱為方法重載(methodoverloading)方法重載是Java實(shí)現(xiàn)多態(tài)性的一種方式。在引導(dǎo)任務(wù)4-1中,有兩個一樣名字的方法TestVegtable,該方法一個帶參數(shù),一個不帶參數(shù),這就是一種方法重載。上一頁下一頁返回4.3知識解析4.3.5this上一頁下一頁返4.3知識解析4.3.7內(nèi)部類內(nèi)部類是指在某個類的內(nèi)部嵌套定義的一個類,內(nèi)部類可以在一個語句塊的內(nèi)部定義,也可以是其他類的成員,還可以在一個表達(dá)式內(nèi)部匿名定義其定義格式可表述如下:class外部類{class內(nèi)部類{}}上一頁返回4.3知識解析4.3.7內(nèi)部類上一頁返回4.4訓(xùn)練任務(wù)

4.4.1跟我學(xué)完成引導(dǎo)任務(wù)4一1的程序設(shè)計(jì)與調(diào)試工作,具體內(nèi)容見引導(dǎo)任務(wù)4一1

4.4.2自己做①創(chuàng)建貪吃蛇中的蛇體類為蛇體類添加相關(guān)屬性,如蛇的運(yùn)動方向標(biāo)識、蛇頭坐標(biāo)、蛇運(yùn)行速度等,同時(shí)為這些屬性提供相關(guān)的設(shè)置與獲取值的方法,參考程序見課本P61。②創(chuàng)建連連看圖片數(shù)據(jù)的模型類為該類添加相應(yīng)的數(shù)據(jù)屬性,如游戲級別、總行數(shù)總列數(shù)、圖片數(shù)據(jù)等并要求設(shè)置這些屬性的獲取與設(shè)置值的方法,參考程序見課本P63。返回4.4訓(xùn)練任務(wù)4.4.1跟我學(xué)返回4.5[引導(dǎo)任務(wù)4-2]為菜品類添加主方法4.5.1任務(wù)要求與目標(biāo)

(1)任務(wù)目標(biāo)能完成類的實(shí)例化

(2)設(shè)計(jì)要求通過TestVegtable。類的對象來獲取某一種菜的名稱、編號、單價(jià)并使其能輸出某種菜的名稱、編號、單價(jià)4.5.2實(shí)施過程①在項(xiàng)目repast中新建包c(diǎn)h04.part2,并在該包中創(chuàng)類建TestVegMain為該類添加如下代碼:下一頁返回4.5[引導(dǎo)任務(wù)4-2]為菜品類添加主方法4.5.4.5[引導(dǎo)任務(wù)4-2]上一頁下一頁返回4.5[引導(dǎo)任務(wù)4-2]上一頁下一頁返回4.5[引導(dǎo)任務(wù)4-2]②最后保存、編譯程序,運(yùn)行結(jié)果如圖4一1所示在main方法中創(chuàng)建了一個TestVegtable的對象testVegtable,并通過該對象相應(yīng)的get方法和set方法完成相關(guān)內(nèi)容的存取上一頁返回4.5[引導(dǎo)任務(wù)4-2]上一頁返回4.6知識解析4.6.1對象的創(chuàng)建其實(shí),將類進(jìn)行實(shí)例化就產(chǎn)生了一個對象對象是在程序執(zhí)行過程中由其所屬的類動態(tài)生成的,一個類可以生成多個不同的對象將類實(shí)例化就生成對象,并通過消息激活指定的某個類的對象的方法以改變其狀態(tài)或產(chǎn)生一定的行為,從而完成某一任務(wù)

Java語言中用創(chuàng)建實(shí)例對象的操作符new來創(chuàng)建對象,其格式如下:<類名><對象名>=<new><類構(gòu)造法>下一頁返回4.6知識解析4.6.1對象的創(chuàng)建下一頁返回4.6知識解析4.6.2對象的使用對象必須在實(shí)例化之后才能夠使用,這一點(diǎn)與前面所說的變量一樣其實(shí),變量也可看做是一種特殊數(shù)據(jù)類型的對象當(dāng)對象實(shí)例化之后,就可以用點(diǎn)操作符“.”來完成對類成員變量和成員方法的訪問操作對類成員的訪問一般形式為:<對象名>.<對象所屬類中的可訪問成員>上一頁下一頁返回4.6知識解析4.6.2對象的使用上一頁下一頁返回4.6知識解析4.6.3訪問控制在講述類的成員變量和成員方法時(shí),提到它們都具有相應(yīng)的訪問控制修飾符Java規(guī)定可以選擇4種訪問方式:public,private,protected和、default它們的具體含義如表4一1所示被訪問控制修飾符修飾后的成員變量或方法所具有的訪問權(quán)限詳見表4一2(“√”表示可以訪問,“x”表示不可以訪問)上一頁下一頁返回4.6知識解析4.6.3訪問控制上一頁下一頁返回4.6知識解析4.6.4Java的垃圾回收在Java程序的生命周期中,Java運(yùn)行環(huán)境提供了一個系統(tǒng)的垃圾回收器線程,負(fù)責(zé)自動回收那些沒有引用與之相連對象所占用的內(nèi)存,這種內(nèi)存回收的過程就叫垃圾回收垃圾回收機(jī)制有如下兩個好處:①它把程序員從復(fù)雜的內(nèi)存追蹤、監(jiān)測、釋放等工作中解放出來;②它防止了系統(tǒng)內(nèi)存被非法釋放,從而使系統(tǒng)更加穩(wěn)定垃圾回收機(jī)制具有以下特點(diǎn):①只有當(dāng)一個對象不被任何引用類型的變量使用時(shí),它的內(nèi)存才能被垃圾回收;②不能通過程序強(qiáng)迫垃圾回收立即執(zhí)行;③當(dāng)垃圾回收器將要釋放無用對象的內(nèi)存時(shí),先調(diào)用該對象的finalize()方法上一頁下一頁返回4.6知識解析4.6.4Java的垃圾回收上一4.6知識解析4.6.5static

在類的定義中,其成員變量和成員方法如果有static修飾,那么該變量或方法就稱為靜態(tài)變量或方法相反沒有static修飾的變量或方法就稱為非靜態(tài)變量或方法這種由static修飾的變量或方法不需要實(shí)例化就可以使用,是類固有的,可以直接由類引用且只有一個備份,它被所有對象共享其使用格式是:

類名.變量名或方法名上一頁下一頁返回4.6知識解析4.6.5static上一頁下一頁4.6知識解析4.6.6對象的比較在Java中我們可以用兩種方法來比較兩個對象是否相等:一是用“==”運(yùn)算符;二是用equals方法該兩種方法的用法如下:①如果是基本類型比較,那么只能用==來比較,即比較基本數(shù)據(jù)類型的值;②如果是對象,則==和equal、比較的都是對象內(nèi)存中的首地址(即比較引用的對象是否為同一個對象);③對于基本類型的包裝類型,比如Boolean,Character,Byte,Short,Integer,Long,Float,Double等的引用變量,==是比較地址的,而equals是比較內(nèi)容的上一頁返回4.6知識解析4.6.6對象的比較上一頁返回4.7訓(xùn)練任務(wù)4.7.1跟我學(xué)完成引導(dǎo)任務(wù)4-2的程序設(shè)計(jì)與調(diào)試工作,具體內(nèi)容見引導(dǎo)任務(wù)4-24.7.2自己做①為貪吃蛇中的蛇體類添加主方法,以測試蛇體的速度、方向、蛇頭顏色、蛇身顏色、蛇體狀態(tài)等程序?qū)懛▍⒁娨龑?dǎo)任務(wù)4-2②為連連看數(shù)據(jù)模型類添加主方法,以測試連連看游戲的開始時(shí)間、游戲運(yùn)行時(shí)間、游戲級別等內(nèi)容程序?qū)懛▍⒁娨龑?dǎo)任務(wù)4-2返回4.7訓(xùn)練任務(wù)4.7.1跟我學(xué)返回4.8[引導(dǎo)任務(wù)4一3]4.8.1任務(wù)要求與目標(biāo)

(1)任務(wù)目標(biāo)學(xué)會使用類的繼承與多態(tài)性

(2)設(shè)計(jì)要求當(dāng)消費(fèi)結(jié)算時(shí),可不打折直接結(jié)算,也可以按會員85折、非會員95折的標(biāo)準(zhǔn)進(jìn)行結(jié)算現(xiàn)要求用繼承來實(shí)現(xiàn)多種結(jié)算方式下一頁返回4.8[引導(dǎo)任務(wù)4一3]4.8.1任務(wù)要求與目標(biāo)下一4.8[引導(dǎo)任務(wù)4一3]4.8.2實(shí)施過程①在項(xiàng)目repast中新建包c(diǎn)h04.part3,并在該包中新建一個TestExtendsP為該類添加如下代碼,最后保存、編譯上一頁下一頁返回4.8[引導(dǎo)任務(wù)4一3]4.8.2實(shí)施過程上一頁下一頁4.8[引導(dǎo)任務(wù)4一3]②在ch04.part3包中新建一個類TestExtMem,并為該類添加如下代碼,最后保存、編譯上一頁下一頁返回4.8[引導(dǎo)任務(wù)4一3]②在ch044.8[引導(dǎo)任務(wù)4一3]③在ch04.part3包中新建一個類TestExt,并為該類添加如下代碼,最后保存、編譯上一頁返回4.8[引導(dǎo)任務(wù)4一3]③在ch04.part3包中新建4.9知識解析4.9.1繼承繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個重要特征,它是通過繼承原有的類而派生出新的類,被繼承的類稱為父類,派生出的新類為子類,子類繼承父類的成員變量和成員方法,同時(shí)還可以修改父類的變量或重寫父類的方法并可以添加新的變量和方法。通過繼承可以實(shí)現(xiàn)代碼的復(fù)用,使程序組織層次更加清晰同時(shí)可以縮短開發(fā)周期。在Java語言中,有一個稱為Object的特殊類,所有的類都是直接或間接地繼承Object類。下一頁返回4.9知識解析4.9.1繼承下一頁返回4.9知識解析4.9.2隱藏與覆蓋在任務(wù)4一3中,類TestExtendsP,TestExtMem和TestExt中都有方法Total(),且類TPS-tExtMem和TestExt繼承了類TestExtendsP在這種情況下,即在類的繼承中,當(dāng)子類的成員變量與父類的成員變量同名時(shí),子類的成員變量會隱藏父類的成員變量;當(dāng)子類的方法與父類的方法同名,參數(shù)列表、返lnt值類型相同時(shí),子類的方法將覆蓋父類的方法;當(dāng)子類重寫的方法由子類的對象調(diào)用時(shí),它總是參考子類中的定義,父類中定義的該方法就被覆蓋方法重寫為子類提供了修改父類成員方法的能力。上一頁下一頁返回4.9知識解析4.9.2隱藏與覆蓋上一頁下一頁返回4.9知識解析4.9.3super

子類在隱藏了父類的成員變量或重寫了父類的方法以后,有時(shí)還要用到父類的成員變量或?yàn)楹喕a的編寫在重寫方法中使用父類中的該方法,這時(shí)就要訪問父類的成員變量或調(diào)用父類的方法Java通過supe:關(guān)鍵字來實(shí)現(xiàn)對父類成員變量的訪問上一頁下一頁返回4.9知識解析4.9.3super上一頁下一頁4.9知識解析4.9.4抽象類和抽象方法用abstract關(guān)鍵字修飾的類稱為抽象類;由abstract關(guān)鍵字修飾的類方法稱為抽象方法一個抽象類可含有抽象方法,但抽象方法不能出現(xiàn)在非抽象類中;一個抽象類不一定要有抽象方法,但一個類如果含有抽象方法就一定要聲明為抽象類抽象類本身不具備實(shí)際的功能,只能夠用于派生子類,而定義為抽象的方法必須在子類中重寫,即覆蓋原方法也就是說,如果一個類被定義為抽象類,則該類不能進(jìn)行實(shí)例化,必須通過覆蓋的方式來實(shí)現(xiàn)抽象類中的方法。上一頁下一頁返回4.9知識解析4.9.4抽象類和抽象方法上一頁下一4.9知識解析4.9.5final修飾符修飾符final既可修飾類,也金額修飾成員變量和成員方法,其用于限制這些被修飾的類、成員變量和成員方法的非繼承性,即是最終的一種形式如果在定義類時(shí)加上final修飾符,則說明該類是最終類,不能被其他類繼承,也不能進(jìn)行實(shí)例化,如以下簡單代碼所示:上一頁下一頁返回4.9知識解析4.9.5final修飾符上一頁4.9知識解析4.9.6多態(tài)性多態(tài)是面向?qū)ο笾械囊粋€重要特征,是指用相同的名字來定義方法,其中每個方法的參數(shù)類型和返回值類型均不相同在Java中,多態(tài)性體現(xiàn)在兩個方面:由方法重載實(shí)現(xiàn)的靜態(tài)多態(tài)性和方法覆蓋實(shí)現(xiàn)的動態(tài)多態(tài)性這些內(nèi)容分別在方法重載和隱藏與覆蓋兩個知識點(diǎn)中講述過了,在此就不再說明了4.9.7初始化的過程構(gòu)造方法可能進(jìn)行初始化工作,而類的成員變量本身也能自動進(jìn)行初始化,那么在對象生成時(shí)。

在初始化的過程中,先靜態(tài)成員,然后是非靜態(tài)成員,再是構(gòu)造方法若有父類,則父類的相關(guān)初始化在子類之前上一頁返回4.9知識解析4.9.6多態(tài)性上一頁返回4.10訓(xùn)練任務(wù)4.10.1跟我學(xué)完成引導(dǎo)任務(wù)4一3的程序設(shè)計(jì)與調(diào)試工作,具體內(nèi)容見引導(dǎo)任務(wù)4一34.10.2自己做①用繼承創(chuàng)建食物類Food,要求繼承Point類,以方便記錄食物的坐標(biāo)位置,參考程序如下:下一頁返回4.10訓(xùn)練任務(wù)4.10.1跟我學(xué)下一頁返回4.10訓(xùn)練任務(wù)上一頁返回4.10訓(xùn)練任務(wù)上一頁返回4.11[引導(dǎo)任務(wù)4一4]4.11.1任務(wù)要求與目標(biāo)(I)任務(wù)目標(biāo)能定義并使用接口(2)設(shè)計(jì)要求該接口能根據(jù)不同級另of的消費(fèi)會員給出不同的折扣4.11.2實(shí)施過程①在項(xiàng)目repast中新建包c(diǎn)h04.part4并在該包中新建一個類TestCountInte:為該接口添加如下代碼,最后保存、編譯下一頁返回4.11[引導(dǎo)任務(wù)4一4]4.11.1任務(wù)要求與4.11[引導(dǎo)任務(wù)4一4]②在NetBeans中新建類CountInterImplOne,并為該類添加如下代碼,最后保存、編譯上一頁下一頁返回4.11[引導(dǎo)任務(wù)4一4]上一頁下一頁返回4.11[引導(dǎo)任務(wù)4一4]③在NetBeans中新建類CountInterImplTw。并為該類添加如下代碼,最后保存、編譯

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論