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

下載本文檔

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

文檔簡介

學(xué)習(xí)目學(xué)習(xí)目?o???類的定類的定?類的定義包括類聲明與類?類是可以公類不能被子類化(“[extends{}[implements類是可以公類不能被子類化(“[extends{}[implements class 類的可見?類的可見?Abstract一個給出抽象結(jié)Abstract一個給出抽象結(jié)構(gòu)、但不給出每實(shí)現(xiàn)的類,叫抽象類抽象類不能直接用new操作符生成實(shí)例類定義用關(guān)鍵字abstract只能被子類化,不能被實(shí)須定義為抽象類??????AbstractProvideaAbstractProvideacontractbetweenaserviceprovideranditsclients.AnabstractclasscanprovideAbstractAbstractInterface.s.AbstractAbstractcanincludemethodInterface.s.AbstractAbstractcanincludemethodMethodsignaturesandpublic,staticand?nalvariables;DoesnotmethodMethodExceptHowto#ofparentclass/Final不能被繼承的類Final不能被繼承的類,e.g.oo類?oo類?oo方方法變量類和繼第五類的定類和繼第五類的定修飾????方類的繼實(shí)現(xiàn)嵌套的??[accessLevel][static][final][transient][volatile]type[accessLevel][static][final][transient][volatile]typetypeAccess盡可能對成員使用最嚴(yán)格的訪問級別,i.e.?修飾同一同一子Access盡可能對成員使用最嚴(yán)格的訪問級別,i.e.?修飾同一同一子不同√√√√√√√*√√*√Example privateExample privatedouble}classvoidSavinga=newa}}ExamplepackageExamplepackageclassprotecteddouble}classvoidBanka=newBank();a.account=10;}}ExampleExampleclassSaving{double}Debit{voidSavingb=new}AccessExample:修飾同一同一子不同√√√√√√√*√AccessExample:修飾同一同一子不同√√√√√√√*√√*√WhydoweWhydoweneedHidesensitiveConditionExample:Final-“不可改變Final-“不可改變變量的值不可改publicfinalintFINALVARIABLE=??Example:?靜態(tài)成員變量:類變靜態(tài)成員變量:類變量e.g.Mathclass唯一性,可以使對象總是訪問同一個值????成員變量的初始成員變量的初始實(shí)例變量的初始化可以在構(gòu)造函數(shù)中進(jìn),當(dāng)類實(shí)例化時才被賦初值???類變量的初始類變量的初始靜態(tài)初始化塊不能有向前的依賴關(guān)系類可以有任意數(shù)量的靜態(tài)初始化塊,靜態(tài)初始化可以出現(xiàn)在類體的任何地方,運(yùn)行時系統(tǒng)按它們在源代中出的次序用。Example:?????類和繼第五類的定類和繼第五類的定修飾????方類的繼實(shí)現(xiàn)嵌套的??returnTypemethodName([paramlist])[throwsexceptions]returnTypemethodName([paramlist])[throwsexceptions]Returntypethrows方法的聲(Signature):方法的名稱和方法的聲(Signature):方法的名稱和參數(shù)列表????方法標(biāo)方法名不能與類名相同,類名和(override)或隱藏了超類方法的重載(?Access修飾同一同一子不同√√√√√√√*√√*Access修飾同一同一子不同√√√√√√√*√√*√FinalFinal?OverrideaprivateOverrideaprivate抽象方這些沒有完整實(shí)現(xiàn)抽象方這些沒有完整實(shí)現(xiàn)的方法叫抽象方法,必須?由子類來重抽象方法只需聲明,不需實(shí)現(xiàn)其聲明前有關(guān)鍵字abstract抽象的子或者實(shí)現(xiàn)了它的超的所有抽象方法,或者也被聲明為抽象。含有抽象方法的類必須聲明為抽象(abstract),非抽象類AbstractAbstractStatic類方法(靜態(tài)Static類方法(靜態(tài)方法)不存在多態(tài),不能被子類類方法只能對類變量進(jìn)行操作,而不能直接引用實(shí)例(態(tài))變量和引用實(shí)例(非靜態(tài))方法o但可通過對象的引用可以在方法中不能使用this和super來非靜量和方法。類方法可以由例象用,也可以由名直接Example:StaticMetod,c?????StaticStaticReturn聲明為void的方Return聲明為void的方法不返回值,否則必須return語句來返回值返回類型可以是接口,這時返回的對須實(shí)現(xiàn)了指???方法體中使用的兩個關(guān)鍵方法體中使用的兩個關(guān)鍵?用來在實(shí)例方法或構(gòu)造子中引用當(dāng)前對的成在構(gòu)造子中用來調(diào)用該類當(dāng)中子(稱式用構(gòu)造子,這時顯式用構(gòu)造子必是構(gòu)造子的第一行句)ThisThis方法體中使用的兩方法體中使用的兩個鍵子類的成員變量或方法與超類的成員變或方法同名時,超類的成員變量或方法被隱,這時需用super指明超類的成員變??在構(gòu)造子中用來調(diào)用超類的構(gòu)SuperSuper類和繼第五類的定類和繼第五類的定修飾????方類的繼實(shí)現(xiàn)嵌套的??超類(父類)、子類和繼超類(父類)、子類和繼由繼承而得到的類為子子類繼承超類的狀態(tài)和行為,同時也可以修改超類的狀態(tài)或重寫超類的行為,并添加新的狀和行。在Java中,所有的類都是通過直接或間接地繼類java.lang.Object得到?????創(chuàng)建子創(chuàng)建子???構(gòu)造函數(shù)構(gòu)造函數(shù) 構(gòu)造子是不能從超類中繼運(yùn)行系自地不包含構(gòu)造子的提供一個無參數(shù)的默構(gòu)造子,它不做任何事。???????構(gòu)造子的調(diào)構(gòu)造子的調(diào)如果沒有顯式說明一個類的構(gòu)造子,系統(tǒng)提供含的構(gòu)造子,含的構(gòu)造子沒有參數(shù)他往上用的是超的沒有參數(shù)的構(gòu)造子。只要程序員定義了構(gòu)造子,Java就不會該類創(chuàng)建隱含的???CastingObjects----對象也會“變臉ForceConvert:CastingObjects----對象也會“變臉ForceConvert:子類=(子類)父類Example:AutoConvert,將消息傳遞給方法將消息傳遞給方法或構(gòu)造可以將任何類型的參數(shù)傳遞給方法注意值傳遞(基本類型)和引用傳遞(引用類型????覆蓋(errie)----讓眾口不再覆蓋(errie)----讓眾口不再實(shí)例方法的覆蓋實(shí)例方法的覆蓋覆蓋方法可以具有不同的ows子句,條件是它沒有指定被覆蓋方法的ows的任何型。Example:SubClass?????類方法的類方法的隱OverrideandHideDefiningamethodOverrideandHideDefiningamethodwiththesamesignatureasasuperclass’SuperclassinstanceGeneratesacompile----timeerrorGeneratesacompile----timeAFew到底調(diào)編譯的時候,可以調(diào)AFew到底調(diào)編譯的時候,可以調(diào)?實(shí)例方法執(zhí)行哪個方法是對象的類型決oo?oExample:重載Javaallowsto重載Javaallowstohavemultiplemethodshavingthesamename,aslongastheparameterlistsareExample:Returntypeisnottakeninto兩大原則兩大原則?Example:Object萬類Object萬類Object類提供的方Object類提供的方??????Object類提供的方方法返回一個對Object類提供的方方法返回一個對象的類的運(yùn)行時表示。?方法返回一個Class象,象包含了的信息的名稱、超、的接口等。不能覆蓋ss方法。例:voidPrintClassName(ObjectSystem.out.println(“TheObject’snameis“+obj.getClass().getName());}InstanceofInstanceof或者某個類的子類-讓對象告訴你它的類是誰?ReturnaBooleanExample:NestedSoNestedSofar,oneclass,onefile,onepublicStaticNestedClassesStaticNestedClassesv.s.InnerTheinnerclasshasaccesstoallthefieldsandmethodsoftheouterclass(includingprivatemembers)Staticnestedclassesdonothaveaccesstoothermembersoftheouterclass.WhyUseWhyUseNestedItisawayoflogicallygroupingclassesthatareonlyusedinoneplace.ItincreasesGivenouterclassAandnestedclassThesensitivemembersofAcanbedeclaredasBitselfcanbehiddenfromtheoutsideNestedclassescanleadtomorereadableandmaintainablecode.StaticNestedStaticNestedAstaticnestedclassisassociatedwithitsouterItcannotreferdirectlytoinstancevariablesormethodsdefinedinitsenclosingclass—itcanusethemonlythroughanobjectreference.HowtoaccessstaticnestedOuterClass.StaticNestedClassnestedobject=newOuterClass.StaticNestedClass();InnerAninnerInnerAninnerclassisassociatedwithaninstanceofitsouterclass→→itcannotdefineanystaticmembersDirectAninstanceofInnerClasscanexistonlywithinaninstanceofOuterClassOuterClass.InnerClassinnerObject=outerObject.newInnerClassesforDeclareaninnerInnerClassesforDeclareaninnerclassforaspecificprivateclassResetListenerimplementsWithininnerclassimplement??publicvoidactionPerformed(ActionEvent}{?AddananonymousobjectinstanceofinnerclassasthelistenerforthecomponentjbtnReset.addActionListener(newLocalAnlocalclassisLocalAnlocalclassisaninnerclassdeclaredwithinamethodoftheouterclass?PublicClass{publicvoid{classMyListenerActionListener{...button1.addActionListener(newMyListener()}}AnonymousAnonymousclassesarelocalclasseswithoutnamesAnonymousAnonymousclassesare

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論