版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
IBM培訓(xùn)--面向?qū)ο笤O(shè)計原理概述IBM培訓(xùn)--面向?qū)ο笤O(shè)計原理概述1Agenda函數(shù)類對象構(gòu)造函數(shù)4/1/20242TemplateDocumentationAgenda函數(shù)3/31/20242TemplateDoc函數(shù)(子程序)的概念與作用。定義一個函數(shù)的格式編寫打印三個矩形的程序(用流水帳的方式與用函數(shù)的方式進行對比分析)。返回值類型函數(shù)名(參數(shù)類型形式參數(shù)1,參數(shù)類型形式參數(shù)2,….){程序代碼
return返回值;}其中:形式參數(shù):在方法被調(diào)用時用于接收外部傳入的數(shù)據(jù)的變量。參數(shù)類型:就是該形式參數(shù)的數(shù)據(jù)類型。返回值:方法在執(zhí)行完畢后返還給調(diào)用它的程序的數(shù)據(jù)。返回值類型:函數(shù)要返回的結(jié)果的數(shù)據(jù)類型。實參:調(diào)用函數(shù)時實際傳給函數(shù)形式參數(shù)的數(shù)據(jù)。如何理解函數(shù)返回值類型為void的情況函數(shù)(方法)4/1/20243TemplateDocumentation函數(shù)(子程序)的概念與作用。函數(shù)(方法)3/31/20243函數(shù)調(diào)用的格式在函數(shù)中使用return提前返回函數(shù)調(diào)用的過程分析函數(shù)的調(diào)用4/1/20244TemplateDocumentation函數(shù)調(diào)用的格式函數(shù)的調(diào)用3/31/20244Template函數(shù)的重載就是在同一個類中允許同時存在一個以上的同名函數(shù),只要它們的參數(shù)個數(shù)或類型不同即可。如: publicclassTest { publicstaticvoidmain(String[]args){ intisum; doublefsum; isum=add(3,5); isum=add(3,5,6); fsum=add(3.2,6.5); } publicstaticintadd(intx,inty){ reutrnx+y; } publicstaticintadd(intx,inty,intz) { returnx+y+z; } publicstaticdoubleadd(doublex,doubley){ returnx+y; } }函數(shù)的重載4/1/20245TemplateDocumentation函數(shù)的重載就是在同一個類中允許同時存在一個以上的同名函數(shù),只Practice1編寫一個類ETPTest2_1,使他具有一個方法為:publicintgetArea(inti,intj)并返回i*j的值。再從外部調(diào)用這個方法傳入相應(yīng),并打印出結(jié)果值4/1/20246TemplateDocumentationPractice1編寫一個類ETPTest2_1,使他具有Practice2求下面代碼輸出結(jié)果public
classETPTest2_2{private
voidchange(intx){x=3;System.out.println(x);}public
static
voidmain(String[]args){intx=5;ETPTest2_2test2_2=newETPTest2_2();test2_2.change(x);System.out.println(x);}}4/1/20247TemplateDocumentationPractice2求下面代碼輸出結(jié)果3/31/20247TPractice3求下面代碼輸入結(jié)果public
classMain{ public
voidchange(Objobj){ obj.x=3; } public
static
voidmain(String[]args){ Mainmain=newMain(); Objobj=newObj(); System.out.println(obj.x); main.change(obj); System.out.println(obj.x); }}classObj{ int
x=5;}4/1/20248TemplateDocumentationPractice3求下面代碼輸入結(jié)果3/31/20248TPractice4privatefloatgetVar(){returnx;}以下哪些可以重載上面這條語句A.floatgetVar()B.publicfloatgetVar()C.publicdoublegetVar()D.protectedfloatgetVar()E.publicfloatgetVar(floatf)4/1/20249TemplateDocumentationPractice4privatefloatgetVar函數(shù)的參數(shù)傳遞
—基本數(shù)據(jù)類型的參數(shù)傳遞
4/1/202410TemplateDocumentation函數(shù)的參數(shù)傳遞
—基本數(shù)據(jù)類型的參數(shù)傳遞3/31/20函數(shù)的參數(shù)傳遞
—引用數(shù)據(jù)類型的參數(shù)傳遞4/1/202411TemplateDocumentation函數(shù)的參數(shù)傳遞
—引用數(shù)據(jù)類型的參數(shù)傳遞3/31/202static靜態(tài)變量當(dāng)我們編寫一個類時,其實就是在描述其對象的屬性和行為,而并沒有產(chǎn)生實質(zhì)上的對象,只有通過new關(guān)鍵字才會產(chǎn)生出對象,這時系統(tǒng)才會分配內(nèi)存空間給對象,其方法才可以供外部調(diào)用。我們有時候希望無論是否產(chǎn)生了對象或無論產(chǎn)生了多少對象的情況下,某些特定的數(shù)據(jù)在內(nèi)存空間里只有一份,例如所有的中國人都有個國家名稱,每一個中國人都共享這個國家名稱,不必在每一個中國人的實例對象中都單獨分配一個用于代表國家名稱的變量。編寫使用靜態(tài)變量統(tǒng)計一個類產(chǎn)生的實例對象的個數(shù)的程序4/1/202412TemplateDocumentationstatic靜態(tài)變量當(dāng)我們編寫一個類時,其實就是在描述其對static靜態(tài)方法在靜態(tài)方法里只能直接調(diào)用同類中其它的靜態(tài)成員(包括變量和方法),而不能直接訪問類中的非靜態(tài)成員。這是因為,對于非靜態(tài)的方法和變量,需要先創(chuàng)建類的實例對象后才可使用,而靜態(tài)方法在使用前不用創(chuàng)建任何對象。靜態(tài)方法不能以任何方式引用this和super關(guān)鍵字。與上面的道理一樣,因為靜態(tài)方法在使用前不用創(chuàng)建任何實例對象,當(dāng)靜態(tài)方法被調(diào)用時,this所引用的對象根本就沒有產(chǎn)生。main()方法是靜態(tài)的,因此JVM在執(zhí)行main方法時不創(chuàng)建main方法所在的類的實例對象,因而在main()方法中,我們不能直接訪問該類中的非靜態(tài)成員,必須創(chuàng)建該類的一個實例對象后,才能通過這個對象去訪問類中的非靜態(tài)成員,這種情況,我們在以后的例子中會多次碰到。4/1/202413TemplateDocumentationstatic靜態(tài)方法在靜態(tài)方法里只能直接調(diào)用同類中其它的靜態(tài)靜態(tài)代碼塊一個類中可以使用不包含在任何方法體中的靜態(tài)代碼塊(staticblock),當(dāng)類被載入時,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊經(jīng)常用來進行類屬性的初始化。類中的靜態(tài)代碼塊被自動執(zhí)行,盡管我們產(chǎn)生了類的多個實例對象,但其中的靜態(tài)代碼塊只被執(zhí)行了一次。當(dāng)一個程序中用到了其他的類,類是在第一次被使用的時候才被裝載,而不是在程序啟動時就裝載程序中所有可能要用到的類。4/1/202414TemplateDocumentation靜態(tài)代碼塊一個類中可以使用不包含在任何方法體中的靜態(tài)代碼塊Practice5下面這個類聲明了靜態(tài)變量,并且使用了靜態(tài)代碼塊初始化變量public
classStaticClass{private
static
int
i;static{i=3;}public
static
voidmain(String[]args){System.out.print(StaticClass.i);}}請創(chuàng)建一個類,使用靜態(tài)代碼塊初始化并打印出來看是否生效4/1/202415TemplateDocumentationPractice5下面這個類聲明了靜態(tài)變量,并且使用了靜態(tài)下一章節(jié)對象和類4/1/202416TemplateDocumentation下一章節(jié)對象和類3/31/202416TemplateDoJAVA中類的聲明類說明語法:[類修飾符]
class類名[
extends 超類名][implements接口名]{ 成員變量定義; 方法定義;}類體4/1/202417TemplateDocumentationJAVA中類的聲明類說明語法:類體3/31/202417TeJAVA中類的聲明(續(xù))類修飾符(Modifier):public:允許其他類(沒有限制)訪問本類,一個源文件僅可以有一個public類abstract:沒有實例的抽象概念類final:不能再被擴展,不包含子類的類;易于安全性的實現(xiàn),或用于創(chuàng)建固定功能的類缺?。嚎杀划?dāng)前包中的其他類訪問父類繼承聲明:extends
父類名實現(xiàn)接口(interface):implements
接口名4/1/202418TemplateDocumentationJAVA中類的聲明(續(xù))類修飾符(Modifier):3/3JAVA中類的聲明(續(xù))例:
publicabstractclassshape{…………} classrectangleextendsshape{…………} finalclassroundrectextendsrectangle {….}??final可以與abstract一起使用嗎?4/1/202419TemplateDocumentationJAVA中類的聲明(續(xù))例:3/31/202419Templ類的成員變量的聲明聲明成員變量〔member〕的語法 [修飾符]數(shù)據(jù)類型變量名;引用:對象名.變量修飾符訪問控制符public:可被所有其他類引用private:僅可被該類自身引用和修改,不能被其他任何類(包括子類)引用
4/1/202420TemplateDocumentation類的成員變量的聲明聲明成員變量〔member〕的語法 3/3成員變量的聲明(續(xù))protected:該類自身、子類、同一包中的其他類缺?。罕景械念恠tatic:類成員變量,對所有的實例一致,引用是前綴可使用類名或?qū)ο竺鹒inal:數(shù)值不變常量,定義同時應(yīng)對其進行初始化4/1/202421TemplateDocumentation成員變量的聲明(續(xù))protected:該類自身、子類、同一成員變量的聲明(續(xù))例:classshape{
privateintx;
privateinty;
staticfinalfloatMaxArea=100.0f; …….. }4/1/202422TemplateDocumentation成員變量的聲明(續(xù))例:3/31/202422Templat方法的聲明定義對類內(nèi)成員變量(數(shù)據(jù))的操作方法的聲明語法: [修飾符]返回類型方法名(參數(shù)列表) [throws例外名]{ 方法體; }誰可以調(diào)用方法、接受哪些參數(shù)、如何返回信息4/1/202423TemplateDocumentation方法的聲明定義對類內(nèi)成員變量(數(shù)據(jù))的操作3/31/2024方法的聲明(續(xù))修飾符(Modifier):訪問控制符:public、private、protectedstatic:靜態(tài)方法,又稱類方法使用類名或?qū)ο竺鳛榍熬Y,建議使用類名在方法體中只能使用static變量和static方法abstract:只有接口沒有語句,要在子類中通過重新定義(override)來實現(xiàn)final:不能被重新定義(override)4/1/202424TemplateDocumentation方法的聲明(續(xù))修飾符(Modifier):3/31/202方法的聲明(續(xù))返回類型:void、return參數(shù)列表:值傳遞throws:通告本方法中會產(chǎn)生的例外(異常)類型,提醒調(diào)用者要對相應(yīng)的可能例外進行處理。當(dāng)執(zhí)行此方法并發(fā)生了例外時,程序會轉(zhuǎn)入調(diào)用者編制的例外處理程序段。4/1/202425TemplateDocumentation方法的聲明(續(xù))返回類型:void、return3/31/2方法的聲明(續(xù))例:
classshape{
privateintx;
staticfloatMaxArea=100.0f;
publicvoidsetx(intnewx){x=newx;}
publicstaticvoidsetMA(floatnewMA){
MaxArea=newMA;
}
publicfinalgetx(){returnx}}4/1/202426TemplateDocumentation方法的聲明(續(xù))例:3/31/202426Template下一章節(jié)對象4/1/202427TemplateDocumentation下一章節(jié)對象3/31/202427TemplateDocu對象的產(chǎn)生Personp1=newPerson();執(zhí)行完后的內(nèi)存狀態(tài)4/1/202428TemplateDocumentation對象的產(chǎn)生Personp1=newPerson();對象的產(chǎn)生當(dāng)一個對象被創(chuàng)建時,會對其中各種類型的成員變量自動進行初始化賦值。除了基本數(shù)據(jù)類型之外的都是變量類型都是引用類型,如上面的Person及前面講過的數(shù)組。4/1/202429TemplateDocumentation對象的產(chǎn)生當(dāng)一個對象被創(chuàng)建時,會對其中各種類型的成員變量自動對象的使用創(chuàng)建新的對象之后,我們就可以使用“對象名.對象成員”的格式,來訪問對象的成員(包括屬性和方法)classTestPerson{ publicstaticvoidmain(String[]args) { Personp1=newPerson(); Personp2=newPerson(); p1.age=-30; p1.shout(); p2.shout(); }}程序運行的內(nèi)存布局如下圖4/1/202430TemplateDocumentation對象的使用創(chuàng)建新的對象之后,我們就可以使用“對象名.對象成對象的生命周期與基本類型的生命周期一樣4/1/202431TemplateDocumentation對象的生命周期與基本類型的3/31/202431Temp對象的比較“==”運算符與equals()方法的區(qū)別怎樣比較兩個數(shù)組對象的內(nèi)容是否相等4/1/202432TemplateDocumentation對象的比較“==”運算符與equals()方法的區(qū)別3/3Practice6比較兩個數(shù)組是否相等1.聲明兩個數(shù)組,并使他們各個元素相同2.調(diào)用Arrays.equals(a1,a2)方法3.打印出結(jié)果值4/1/202433TemplateDocumentationPractice6比較兩個數(shù)組是否相等3/31/20243實現(xiàn)類的封裝性如果外面的程序可以隨意修改一個類的成員變量,會造成不可預(yù)料的程序錯誤,就象一個人的身高,不能被外部隨意修改,只能通過各種攝取營養(yǎng)的方法去修改這個屬性。在定義一個類的成員(包括變量和方法)時,使用private關(guān)鍵字說明這個成員的訪問權(quán)限,這個成員成了類的私有成員,只能被這個類的其他成員方法調(diào)用,而不能被其他的類中的方法所調(diào)用。4/1/202434TemplateDocumentation實現(xiàn)類的封裝性如果外面的程序可以隨意修改一個類的成員變量,實現(xiàn)類的封裝性為了實現(xiàn)良好的封裝性,我們通常將類的成員變量聲明為private,再通過public的方法來對這個變量進行訪問。對一個變量的操作,一般都有讀取和賦值操作,我們分別定義兩個方法來實現(xiàn)這兩種操作,一個是getXxx()(Xxx表示要訪問的成員變量的名字),用來讀取這個成員變量操作,另外一個是setXxx()用來對這個成員變量賦值。一個類通常就是一個小的模塊,我們應(yīng)該讓模塊僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。我們在進行程序的詳細設(shè)計時,應(yīng)盡量避免一個模塊直接修改或操作另一個模塊的數(shù)據(jù),模塊設(shè)計追求強內(nèi)聚(許多功能盡量在類的內(nèi)部獨立完成,不讓外面干預(yù)),弱耦合(提供給外部盡量少的方法調(diào)用)。用總統(tǒng)指揮一支軍隊的例子來說明這種效果。4/1/202435TemplateDocumentation實現(xiàn)類的封裝性為了實現(xiàn)良好的封裝性,我們通常將類的成員變量類的封裝所帶來的優(yōu)點隱藏類的實現(xiàn)細節(jié);讓使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對屬性的不合理操作;便于修改,增強代碼的可維護性;4/1/202436TemplateDocumentation類的封裝所帶來的優(yōu)點隱藏類的實現(xiàn)細節(jié);3/31/20243下一章節(jié)構(gòu)造函數(shù)4/1/202437TemplateDocumentation下一章節(jié)構(gòu)造函數(shù)3/31/202437TemplateDo構(gòu)造函數(shù)的定義與作用構(gòu)造方法的特征它具有與類相同的名稱;它不含返回值;它不能在方法中用return語句返回一個值注意:在構(gòu)造方法里不含返回值的概念是不同于“void”的,在定義構(gòu)造方法時加了“void”,結(jié)果這個方法就不再被自動調(diào)用了。構(gòu)造方法的作用:當(dāng)一個類的實例對象剛產(chǎn)生時,這個類的構(gòu)造方法就會被自動調(diào)用,我們可以在這個方法中加入要完成初始化工作的代碼。這就好像我們規(guī)定每個“人”一出生就必須先洗澡,我們就可以在“人”的構(gòu)造方法中加入完成“洗澡”的程序代碼,于是每個“人”一出生就會自動完成“洗澡”,程序就不必再在每個人剛出生時一個一個地告訴他們要“洗澡”了。4/1/202438TemplateDocumentation構(gòu)造函數(shù)的定義與作用構(gòu)造方法的特征3/31/202438T構(gòu)造方法的重載和一般的方法重載一樣,重載的構(gòu)造方法具有不同個數(shù)或不同類型的參數(shù),編譯器就可以根據(jù)這一點判斷出用new關(guān)鍵字產(chǎn)生對象時,該調(diào)用哪個構(gòu)造方法了。產(chǎn)生對象的格式是:new類名(參數(shù)列表);重載構(gòu)造方法可以完成不同初始化的操作,如:p3=newPerson(“Tom”,18);語句,會做這樣幾件事:創(chuàng)建指定類的新實例對象,在堆內(nèi)存中為實例對象分配內(nèi)存空間,并調(diào)用指定類的構(gòu)造方法,最后將實例對象的首地址賦值給引用變量p3。4/1/202439TemplateDocumentation構(gòu)造方法的重載和一般的方法重載一樣,重載的構(gòu)造方法具有不同構(gòu)造方法的一些細節(jié)在java每個類里都至少有一個構(gòu)造方法,如果程序員沒有在一個類里定義構(gòu)造方法,系統(tǒng)會自動為這個類產(chǎn)生一個默認的構(gòu)造方法,這個默認構(gòu)造方法沒有參數(shù),在其方法體中也沒有任何代碼,即什么也不做。由于系統(tǒng)提供的默認構(gòu)造方法往往不能滿足編程者的需求,我們可以自己定義類的構(gòu)造方法,來滿足我們的需要,一旦編程者為該類定義了構(gòu)造方法,系統(tǒng)就不再提供默認的構(gòu)造方法了。聲明構(gòu)造方法,如無特殊需要,應(yīng)使用public關(guān)鍵字,在我們前面例子中,可以使用private訪問修飾符嗎?4/1/202440TemplateDocumentation構(gòu)造方法的一些細節(jié)在java每個類里都至少有一個構(gòu)造方法,this是什么?如果func2方法被調(diào)用,一定是事先已經(jīng)有了一個存在的對象,func2被作為那個對象的方法被使用。在func2內(nèi)部能引用別的對象,同樣也能引用func2所屬的那個對象。在func2中,自己所屬的那個對象的引用名稱是什么呢?this關(guān)鍵字在java程序里的作用和它的詞義很接近,它在函數(shù)內(nèi)部就是這個函數(shù)所屬的對象的引用變量。4/1/202441TemplateDocumentationthis是什么?如果func2方法被調(diào)用,一定是事先已經(jīng)this引用句柄的存放位置每個成員方法內(nèi)部,都有一個this引用變量,指向調(diào)用這個方法的對象,類中的成員方法與this之間的關(guān)系如圖4/1/202442TemplateDocumentationthis引用句柄的存放位置每個成員方法內(nèi)部,都有一個thisthis引用句柄的應(yīng)用一個類中的成員方法可以直接調(diào)用同類中的其他成員,其實我們在一個方法內(nèi)部使用“this.其他成員”的引用方式和直接使用“其他成員”的效果是一樣的,那this還有多大的作用呢?在有些情況下,我們還是非得用this關(guān)鍵字不可的:讓類的成員變量名和對其進行賦值的成員方法的形參變量同名是必要的,這樣的代碼誰看了都能明白這兩個變量是彼此相關(guān)的,老手看到函數(shù)的定義,就能揣摩出函數(shù)中的代碼,大大節(jié)省了別人和自己日后閱讀程序的時間。假設(shè)我們有一個容器類和一個部件類,在容器類的某個方法中要創(chuàng)建部件類的實例對象,而部件類的構(gòu)造方法要接收一個代表其所在容器的參數(shù)。構(gòu)造方法是在產(chǎn)生對象時被java系統(tǒng)自動調(diào)用的,我們不能在程序中象調(diào)用其他方法一樣去調(diào)用構(gòu)造方法。但我們可以在一個構(gòu)造方法里調(diào)用其他重載的構(gòu)造方法,不是用構(gòu)造方法名,而是用this(參數(shù)列表)的形式,根據(jù)其中的參數(shù)列表,選擇相應(yīng)的構(gòu)造方法。4/1/202443TemplateDocumentationthis引用句柄的應(yīng)用一個類中的成員方法可以直接調(diào)用同類中的Practice7創(chuàng)建一個類Cla給出三個成員變量inta,b,c使用兩個構(gòu)造函數(shù)publicCla()publicCla(inta,intb,intc)使用this句柄在構(gòu)造函數(shù)中給變量賦值在主函數(shù)中分別使用兩個構(gòu)造函數(shù)創(chuàng)建兩個對象4/1/202444TemplateDocumentationPractice7創(chuàng)建一個類Cla3/31/202444T下一章節(jié)繼承4/1/202445TemplateDocumentation下一章節(jié)繼承3/31/202445TemplateDocu面向?qū)ο蟮母拍睢宇愖宇愂亲鳛榱硪粋€類的擴充或修正而定義的一個類。bicycle(superclass)MountainbikesRacingbikesTandembikessubclass4/1/202446TemplateDocumentation面向?qū)ο蟮母拍睢宇愖宇愂亲鳛榱硪粋€類的擴充或修正而定義的面向?qū)ο蟮母拍睢^承繼承使得子類可以利用父類中定義的方法和變量,就像它們屬于子類本身一樣。classEmployee{protected
Stringname;publicvoidshowInfo(){System.out.println(name);}}
classManagerextendsEmployee{private
Stringdepartment;publicvoidshowInfo(){System.out.println(name);System.out.println(“Managerof”+department);}}
4/1/202447TemplateDocumentation面向?qū)ο蟮母拍睢^承繼承使得子類可以利用父類中定義的方法和繼承繼承性是面向?qū)ο蟪绦蛟O(shè)計語言的一個基本特征,通過繼承可以實現(xiàn)代碼的復(fù)用。繼承而得到的類為子類,被繼承的類為父類,父類包括所有直接或間接被繼承的類。Java中不支持多重繼承。通過在類的聲明中加入extends子句來創(chuàng)建一個類的子類:classSubClassextendsSuperClass{}如果省略extends子句,則該類為Object的子類。子類可以繼承父類中訪問權(quán)限設(shè)定為public、protected和default的成員變量和方法,但是不能繼承訪問權(quán)限為private的成員變量和方法。4/1/202448TemplateDocumentation繼承繼承性是面向?qū)ο蟪绦蛟O(shè)計語言的一個基本特征,通過繼承可以繼承的例子4/1/202449TemplateDocumentation繼承的例子3/31/202449TemplateDocum調(diào)用父類構(gòu)造函數(shù)super(x,…);調(diào)用父類構(gòu)造函數(shù)時應(yīng)遵循的原則:只能在子類中調(diào)用父類的構(gòu)造函數(shù).調(diào)用父類構(gòu)造函數(shù)時,必須使用super(…)不要在父類構(gòu)造函數(shù)前放任何子類構(gòu)造函數(shù)代碼。如果子類中沒有調(diào)用父類構(gòu)造,會默認調(diào)用無參數(shù)的super()4/1/202450TemplateDocumentation調(diào)用父類構(gòu)造函數(shù)super(x,…);3/31/202450類方法的覆蓋方法覆蓋即指在子類中重新實現(xiàn)父類中已有的方法。Java運行時系統(tǒng)根據(jù)調(diào)用該方法的實例的類型來決定調(diào)用哪個實現(xiàn)。方法覆蓋時應(yīng)遵循的原則:覆蓋后的方法不能比被覆蓋的方法有更嚴格的訪問前提條件。4/1/202451TemplateDocumentation類方法的覆蓋方法覆蓋即指在子類中重新實現(xiàn)父類中已有的方法。3面向?qū)ο蟮母拍睢采w覆蓋使得在子類中可以重新定義父類中已有的方法,從而是子類具有自己的行為。classEmployee{protected
Stringname;publicvoidshowInfo(){System.out.println(name);}}
classManagerextendsEmployee{private
Stringdepartment;publicvoidshowInfo(){System.out.println(name);System.out.println(“Managerof”+department);}}
4/1/202452TemplateDocumentation面向?qū)ο蟮母拍睢采w覆蓋使得在子類中可以重新定義父類中已有Practice8有一個父類Car,內(nèi)有屬性:intmaxSpeed方法:voidstop();有兩個子類BMW,QQ繼承父類請調(diào)用父類構(gòu)造方法,初始化賦值maxSpeed請重寫stop()方法,要求BMW當(dāng)maxSpeed>=300;打印語句“停車”QQ當(dāng)maxSpeed>=120;打印語句“停車”4/1/202453TemplateDocumentationPractice8有一個父類Car,內(nèi)有屬性:3/31/23.接口“對實現(xiàn)我的類,看起來都應(yīng)該是我的樣子”接口規(guī)定了一個類的基本形式:自變量,方法名,返回類型.但不規(guī)定方法的主體.接口的數(shù)據(jù)類型:都默認為static,final只是一種形式,不涉及細節(jié)4/1/202454TemplateDocumentation3.接口“對實現(xiàn)我的類,看起來都應(yīng)該是我的樣子”3/31/3.接口定義的形式[public]interfaceinterfaceName[extendsSuperInterfaceList]{ …… //常量定義和方法定義}接口(interface)作為特殊形式的抽象類,和類(class)在使用上具有類似的約束。一個public接口只能定義在同名的.java文件中4/1/202455TemplateDocumentation3.接口定義的形式[public]interfacei3.類對接口的實現(xiàn)用implements子句來表示一個類實現(xiàn)某個接口。在類體中可以使用接口中定義的常量,而且必須實現(xiàn)接口中定義的所有方法。利用接口可實現(xiàn)多重繼承,即一個類可以實現(xiàn)多個接口,在implements子句中用逗號分隔。接口的作用和抽象類相似,只定義原型,不直接定義方法的內(nèi)容。接口中的方法和變量都必須是public的。4/1/202456TemplateDocume
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機關(guān)科技知識培訓(xùn)課件
- 2025至2030中國無人機應(yīng)用行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030裝修設(shè)計項目可行性研究咨詢報告
- 2026年重慶大學(xué)附屬江津醫(yī)院招聘備考題庫(中藥調(diào)劑崗)及1套參考答案詳解
- 2026年泰州市新春暉企業(yè)管理服務(wù)有限公司招聘宿舍管理員備考題庫(第二批)完整參考答案詳解
- 中國核工業(yè)二三建設(shè)有限公司2025年核級焊接技術(shù)校園招聘備考題庫及一套答案詳解
- 中國熱帶農(nóng)業(yè)科學(xué)院廣州實驗站2026年第一批公開招聘工作人員備考題庫參考答案詳解
- 國家海洋環(huán)境監(jiān)測中心2026年度面向社會公開招聘工作人員備考題庫及答案詳解1套
- 2025至2030中國農(nóng)業(yè)機械化產(chǎn)業(yè)鏈投資價值及市場前景評估報告
- 2025-2030中國溴代環(huán)戊烷行業(yè)趨向洞察及未來供需趨勢預(yù)判研究報告
- 2025年12月福建廈門市鷺江創(chuàng)新實驗室管理序列崗位招聘8人備考題庫必考題
- 人工搬運培訓(xùn)課件
- 建筑施工異常工況安全處置指南
- 2025年榆林神木市信息產(chǎn)業(yè)發(fā)展集團招聘備考題庫(35人)及答案詳解(新)
- 2025年公務(wù)員時事政治熱點試題解析+答案
- 免疫聯(lián)合治療的生物樣本庫建設(shè)
- 項目管理溝通矩陣及問題跟進器
- 交通運輸企業(yè)人力資源管理中存在的問題及對策
- 蒂森電梯安全質(zhì)量培訓(xùn)
- 設(shè)備供貨進度計劃及保證措施
- 純化水取樣課件
評論
0/150
提交評論