




已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主要內(nèi)容 8 1類的繼承8 2抽象類8 3接口8 4內(nèi)部類和匿名類8 5包 類的說明符 類的訪問說明符 1 public 2 friendly 不加訪問說明符時(shí) 類的其它修飾符 1 final 2 abstract 類的繼承 理解繼承是理解面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵 在Java中 通過關(guān)鍵字extends繼承一個(gè)已有的類 被繼承的類稱為父類 超類 基類 新的類稱為子類 派生類 子類可以有自己的成員方法及成員變量如何訪問 在Java中 不允許多繼承 特殊變量super 特殊變量super 提供了對(duì)父類的訪問 可以使用super訪問父類被子類隱藏的變量或覆蓋的方法 每個(gè)子類構(gòu)造方法的第一條語(yǔ)句 都是隱含地調(diào)用super 如果父類沒有這種形式的構(gòu)造函數(shù) 那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò) classperson publicperson inti System out println creatingperson i classstudentextendsperson classtest publicstaticvoidmain Stringargs personp newperson 2 判斷 程序?qū)⑤敵?creatingperson2 classperson publicperson System out println person classstudentextendsperson publicstudent System out println student classtest publicstaticvoidmain Stringargs newstudent newperson 寫出右邊程序的輸出結(jié)果 classperson publicintm1 publicperson intd m1 d classstudentextendsperson publicintm2 publicstudent intds intd 初始化m1為ds的值m2 d classtest publicstaticvoicmain Stringargs students newstudent 2 3 System out println s m1 s m2 1 給劃線出填上合適的語(yǔ)句 2 請(qǐng)給出程序運(yùn)行結(jié)果 方法的覆蓋 override 在子類中定義一個(gè)與父類同名 返回類型 參數(shù)類型均相同一個(gè)方法 稱為方法的覆蓋 覆蓋發(fā)生在子類與父類之間 出現(xiàn)覆蓋時(shí)允許用父類的變量訪問子類的成員靜態(tài)方法 final修飾的方法均不可被覆蓋 下面哪個(gè)方法定義于劃線處會(huì)導(dǎo)致編譯錯(cuò)誤 classperson publicfloatgetNum return3 0f publicclassstudentextendsperson A publicfloatgetNUm return4 0f B publicvoidgetNUm C publicvoidgetNum doubled D publicdoublegetNum floadd return4 0d publicclassstudentextendsperson publicvoidset System out println student publicstaticvoidmain Stringargs Objecta newstudent person a set 請(qǐng)給出程序運(yùn)行結(jié)果 classperson publicvoidset System out println person classperson voidset System out println inperson staticvoidget System out println inpersonget classstudentextendsperson voidset System out println instudent staticvoidget System out println instudentget personst1 newstudent st1 set st1 get studentst2 newstudent st2 set st2 get 請(qǐng)給出程序運(yùn)行結(jié)果 classperson publicintm 5 publicvoidprint System out print m classstudentextendsperson publicintm 2 publicvoidprint System out print m personp newstudent p print System out println p m 執(zhí)行如下語(yǔ)句后的結(jié)果是 classperson publicvoidset System out println person classstudentextendsperson publicvoidset System out println student publicstaticvoidmain Stringargs mstudentms newmstudent classmstudentextendsperson publicvoidset System out println mstudent 劃線處填寫適當(dāng)語(yǔ)句以輸出 person classperson classstudentextendsperson publicvoidset System out println student publicstaticvoidmain Stringargs personp newstudent 劃線處填寫哪個(gè)語(yǔ)句能輸出 student A p set B person p set C student p set D student p set Object類 equals 方法toString 方法getClass 方法instanceof運(yùn)算符getClass getName 方法getClass getSupername 方法 classperson voidset System out println person set voidfun System out println person fun this set classstudentextendsperson voidset System out println student set begin super fun System out println student set end 執(zhí)行下列語(yǔ)句后程序的輸出是 students newstudent s set final方法 為了確保某個(gè)函數(shù)的行為在繼承過程中保持不變 并且不能被覆蓋 overridden 可以使用final方法 為了效率上的考慮 將方法聲明為final 讓編譯器對(duì)此方法的調(diào)用進(jìn)行優(yōu)化 要注意的是 編譯器會(huì)自行對(duì)final方法進(jìn)行判斷 并決定是否進(jìn)行優(yōu)化 通常在方法的體積很小 而我們確實(shí)不希望它被覆蓋時(shí) 才將它聲明為final class中所有的private和static方法自然就是final classperson publicfinalvoidset System out print 1 classstudentextendsperson publicfinalvoidset inti System out print i students newstudent s set s set 2 執(zhí)行上述程序后 結(jié)果為 輸出 12 無(wú)法編譯 因?yàn)榫哂衒inal屬性的方法不能被覆蓋無(wú)法通過編譯 因?yàn)榉椒ㄕ{(diào)用有問題可以通過編譯 但無(wú)法正常運(yùn)行 抽象方法和抽象類 在類中沒有方法體的方法 就是抽象方法 含有抽象方法的類 即為抽象類 如果一個(gè)子類沒有實(shí)現(xiàn)抽象基類中所有的抽象方法 則子類也成為一個(gè)抽象類 抽象類中可以包含一般方法及構(gòu)造方法 且能被其子類正常調(diào)用靜態(tài)方法 私有方法 final方法不能被聲明為抽象的方法 classperson publicabstractvoidset classstudentextendsperson publicvoidset System out print 1 classworkerextendsperson publicvoidset System out print 2 personp newstudent p set p newworker p set 執(zhí)行上述程序后 結(jié)果為 輸出 12 輸出 11 無(wú)法通過編譯 因?yàn)轭愋娃D(zhuǎn)換不合法無(wú)法通過編譯 因?yàn)閜erson的定義不對(duì) abstractclassperson intset return5 classtest publicstaticvoidmain Stringargs persona newperson personb newperson System out println a set b set 若下列程序是否能正常運(yùn)行 則寫出運(yùn)行結(jié)果 否則指出錯(cuò)誤之處 并修改 接口 接口中所有的方法默認(rèn)為publicabstract 在接口中聲明方法時(shí) 不能使用native static final synchronized private protected等修飾符 接口中的成員變量一定要賦初值 且不能被修改 默認(rèn)修飾符為publicstaticfinal 接口與抽象類的區(qū)別 不可有一般方法 interfaceMath doublePI 3 1415926 classArithmeticimplementsMath doubleroundArea doubleradius returnPI radius radius Arithmetica newArithmetic 判斷以下語(yǔ)句有無(wú)錯(cuò)誤 A System out println a roundArea 3 B System out println Math PI C System out println Arithmetic PI D System out println a PI 接口 一個(gè)接口可以繼承自另一個(gè)接口 Java中不允許類的多繼承 但允許接口的多繼承 interfaceSittable voidsit interfaceLie voidsleep interfaceChairextendsSittable interfaceSofaextendsSittable Lie 接口 在Java中 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口 一個(gè)類在繼承另外一個(gè)類的同時(shí) 可以實(shí)現(xiàn)多個(gè)接口 實(shí)現(xiàn)多個(gè)接口interfaceSittable voidsit interfaceLie voidsleep classSofaimplementsSittable Lie publicvoidsit publicvoidsleep Sofa java 在繼承類的同時(shí) 實(shí)現(xiàn)多個(gè)接口interfaceSittable voidsit interfaceLie voidsleep interfaceHealthCare voidmassage classChairimplementsSittable publicvoidsit classSofaextendsChairimplementsLie HealthCare publicvoidsleep publicvoidmassage 內(nèi)部類 在一個(gè)類中定義另外一個(gè)類 這個(gè)類就叫做內(nèi)部類或內(nèi)置類 innerclass 內(nèi)部類可以讓我們將邏輯上相關(guān)的一組類組織起來 并由外部類 outerclass 來控制內(nèi)部類的可見性 當(dāng)我們建立一個(gè)innerclass時(shí) 其對(duì)象就擁有了與外部類對(duì)象之間的一種關(guān)系 這是通過一個(gè)特殊的thisreference形成的 使得內(nèi)部類對(duì)象可以隨意的訪問外部類中所有的成員 內(nèi)部類 在方法中定義的內(nèi)部類 如果要訪問方法中定義的本地變量或方法的參數(shù) 則變量必須被聲明final 內(nèi)部類可以聲明為private或protected 還可以聲明為abstract或final 內(nèi)部類可以聲明為static的 但此時(shí)就不能再使用外部類的非static的成員變量和非static的成員方法 非static的內(nèi)部類中的成員不能聲明為static的 只有在頂層類或static的內(nèi)部類中才可聲明static成員 內(nèi)部類 我們?yōu)槭裁词褂脙?nèi)部類1 在內(nèi)部類 innerclass 中 可以隨意的訪問外部類的成員 這可以讓我們更好地組織管理我們的代碼 增強(qiáng)代碼的可讀性 2 內(nèi)部類可以用于創(chuàng)建適配器類 適配器類是用于實(shí)現(xiàn)接口的類 使用內(nèi)部類來實(shí)現(xiàn)接口 可以更好地定位與接口關(guān)聯(lián)的方法在代碼中的位置 3 內(nèi)部類的更多用法 包 package 為了便于管理大型軟件系統(tǒng)中數(shù)目眾多的類 解決類命名沖突的問題 Java引入了包 package 包 package package語(yǔ)句必須是文件中的第一條語(yǔ)句 也就是說 在package語(yǔ)句之前 除了空白和注釋之外不能有任何語(yǔ)句 如果不加package語(yǔ)句 則指定
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 直線的投影課件
- 2023-2024學(xué)年湖南省部分學(xué)校高二下學(xué)期7月期末聯(lián)考數(shù)學(xué)試題(解析版)
- 2023-2024學(xué)年福建省南平市高二下學(xué)期7月期末質(zhì)量檢測(cè)數(shù)學(xué)試題(解析版)
- 作業(yè)場(chǎng)地安全管理制度
- 供暖企業(yè)設(shè)備管理制度
- 供氧中心設(shè)備管理制度
- 供水公司庫(kù)房管理制度
- 供水單位薪酬管理制度
- 供熱公司安全信息及檔案管理制度
- 供熱外網(wǎng)施工管理制度
- 旅游景區(qū)規(guī)劃設(shè)計(jì)案例
- 鋼琴課件教學(xué)課件
- 國(guó)家開放大學(xué)《四史通講》形考作業(yè)1-3+大作業(yè)試卷ABC答案
- 電氣施工管理
- 【MOOC】天文探秘-南京大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- FES手冊(cè)完整版本
- 云南省保山市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版小升初模擬((上下)學(xué)期)試卷及答案
- 2024年西藏初中學(xué)業(yè)水平考試地理卷試題真題(含答案解析)
- 2024年廣西職業(yè)院校技能大賽高職組《供應(yīng)鏈管理》賽項(xiàng)規(guī)程
- 一年級(jí)口算題卡大全(80套口算練習(xí)題直接打印版)
- 手術(shù)室儀器設(shè)備管理制度
評(píng)論
0/150
提交評(píng)論