




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第8章 內(nèi)部類與包裝器 學(xué)前提示基本數(shù)據(jù)類型不能實(shí)例化成對(duì)象用,因而不能按照對(duì)象的思想來(lái)編程,Java中提供了包裝器進(jìn)行裝箱、拆箱操作來(lái)解決這個(gè)問(wèn)題。Java中有一種類,它聲明在另一個(gè)類中,這樣的類稱為內(nèi)部類。本章將討論內(nèi)部類和包裝器的相關(guān)知識(shí)。知識(shí)要點(diǎn)內(nèi)部類 對(duì)象包裝器裝箱和拆箱18.1 內(nèi)部類和內(nèi)部接口內(nèi)部類可以分為:靜態(tài)內(nèi)部類、非靜態(tài)內(nèi)部類、局部?jī)?nèi)部類、匿名內(nèi)部類。內(nèi)部類都是一個(gè)獨(dú)立的類,編譯完后都會(huì)對(duì)應(yīng)一個(gè).class文件,文件名以“外部類類名$內(nèi)部類類名.class”的形式出現(xiàn)。由于內(nèi)部類在一個(gè)類的內(nèi)部作為外部類的一個(gè)成員出現(xiàn),所以它們可以任意訪問(wèn)外部類的成員變量而不受修飾符的限制。
2、28.1 內(nèi)部類和內(nèi)部接口內(nèi)部類可以訪問(wèn)它的外部類的一切成員,包括private成員。內(nèi)部類的主要好處是:高內(nèi)聚、低耦合。也就是說(shuō),內(nèi)部類相當(dāng)于外部類的密友,外部類與其他類相當(dāng)于普通朋友,密友知道外部類的所有東西,普通朋友只能知道外部類所公開(kāi)的東西。下面對(duì)靜態(tài)內(nèi)部類、非靜態(tài)內(nèi)部類、局部?jī)?nèi)部類、匿名內(nèi)部類一一進(jìn)行說(shuō)明。38.1.1 非靜態(tài)內(nèi)部類未使用關(guān)鍵字static修飾的內(nèi)部類,稱為是費(fèi)靜態(tài)內(nèi)部類,它可以看作為外部類的非靜態(tài)成員。定義非靜態(tài)內(nèi)部類等同于定義一個(gè)類的非靜態(tài)成員。它的代碼形式如下:public class Outer /外部類 int i; /外部類的非靜態(tài)成員屬性String n
3、ame;class Inner /非靜態(tài)成員內(nèi)部類48.1.1 非靜態(tài)內(nèi)部類非靜態(tài)內(nèi)部類有如下性質(zhì)。(1)費(fèi)靜態(tài)內(nèi)部類相當(dāng)于外部類的成員,可以使用public/private/default權(quán)限修飾符修飾。(2)一個(gè)非靜態(tài)內(nèi)部類對(duì)象必須依附于外部類對(duì)象而存在非靜態(tài)內(nèi)部類可以訪問(wèn)外部類一切成員。(3)在非靜態(tài)類內(nèi)部采用外部類名.this的形式來(lái)獲得其所屬外部類對(duì)象。58.1.1 成員內(nèi)部類內(nèi)部類的實(shí)例化途徑有以下幾種形式:通過(guò)外部類的非靜態(tài)方法實(shí)例化內(nèi)部類。通過(guò)外部類的靜態(tài)方法實(shí)例化內(nèi)部類。68.1.1 成員內(nèi)部類下面介紹前兩種實(shí)例化途徑。通過(guò)定義一個(gè)外部類的方法來(lái)實(shí)例化內(nèi)部類,其實(shí)現(xiàn)代碼如下:
4、參見(jiàn)教材P230在Outer4類中雖然沒(méi)有看到外部類的實(shí)例化,但在外部類的instanceInner方法中直接實(shí)例化內(nèi)部類Inner4實(shí)質(zhì)上是虛擬機(jī)隱含地實(shí)例化了外部類,也就是內(nèi)部類引用會(huì)默認(rèn)鏈接到外部類的對(duì)象上。外部類的靜態(tài)方法訪問(wèn)成員內(nèi)部類,與在普通類外部訪問(wèn)屬性或方法的方式一樣。通過(guò)外部類的靜態(tài)main方法實(shí)例化內(nèi)部類,其實(shí)現(xiàn)代碼如下:參見(jiàn)教材P230由上述Outer5類的代碼可知,內(nèi)部類實(shí)例可在其外部類的實(shí)例方法中創(chuàng)建,此新創(chuàng)建內(nèi)部類實(shí)例所屬的外部類實(shí)例自然就是創(chuàng)建它的外部類實(shí)例方法對(duì)應(yīng)的外部類實(shí)例。78.1.2 靜態(tài)內(nèi)部類用static修飾的內(nèi)部類稱為靜態(tài)內(nèi)部類。靜態(tài)內(nèi)部類中可聲明靜
5、態(tài)成員或非靜態(tài)成員,并且可以通過(guò)public、protected、private修飾。代碼形式如下:參見(jiàn)教材P233非靜態(tài)內(nèi)部類不可擁有靜態(tài)成員,靜態(tài)內(nèi)部類才可擁有靜態(tài)成員。88.1.2 靜態(tài)內(nèi)部類【例8.1】StaticOuter.java。代碼如下:參見(jiàn)教材P233在代碼所在區(qū)域右擊,在彈出的快捷菜單中選擇Run As Java Application命令,控制臺(tái)的輸出結(jié)果如圖8.4所示。靜態(tài)內(nèi)部類的對(duì)象可以由OuterClass.InnerClass in = new OuterClass.InnerClass()生成,不需要通過(guò)生成外部類對(duì)象來(lái)生成,即靜態(tài)內(nèi)部類的對(duì)象可以獨(dú)立存在,不需
6、要依附于外部類對(duì)象。這樣實(shí)際上使靜態(tài)內(nèi)部類成為一個(gè)頂級(jí)類。98.1.3 局部?jī)?nèi)部類局部?jī)?nèi)部類也叫方法內(nèi)部類,即在方法內(nèi)部定義的內(nèi)部類。局部?jī)?nèi)部類的代碼形式如下:public class Outer6 private String address;public void display() /方法class Inner6 /局部?jī)?nèi)部類 108.1.3 局部?jī)?nèi)部類局部?jī)?nèi)部類有如下性質(zhì)。(1)在局部?jī)?nèi)部類中,如果要訪問(wèn)外部類的局部變量,則此變量必須是final修飾的,否則不能訪問(wèn)。(2)與非靜態(tài)成員內(nèi)部類類似,內(nèi)部類的實(shí)例化必須先實(shí)例化外部類。118.1.4 匿名內(nèi)部類匿名內(nèi)部類就是沒(méi)有名字的內(nèi)部類。正因?yàn)樗鼪](méi)有名字,所以匿名內(nèi)部類是沒(méi)有構(gòu)造器的。在后面講到Swing應(yīng)用的時(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省重點(diǎn)高中沈陽(yáng)市郊聯(lián)體2024-2025學(xué)年高二下學(xué)期4月月考政治試題(原卷版+解析版)
- 二零二五資產(chǎn)抵押擔(dān)保合同
- 順德區(qū)前期物業(yè)服務(wù)合同
- 激波管實(shí)驗(yàn)室的主要設(shè)備及特點(diǎn),主要風(fēng)險(xiǎn)及安全注意事項(xiàng)
- 合伙分配協(xié)議
- 離婚后同居協(xié)議合同書范例
- 三方商鋪?zhàn)赓U合同書范例
- 二零二五加盟店合作合同書范例
- 來(lái)賓酒廠獨(dú)家經(jīng)銷商合作協(xié)議書
- DB37∕T 4169-2020 大櫻桃避雨防霜栽培技術(shù)規(guī)程
- 工業(yè)固體廢棄物的資源化處理
- 《如何在小學(xué)語(yǔ)文教學(xué)中有效實(shí)施書法教學(xué)的研究》課題結(jié)題匯報(bào)課件
- 2024-2025學(xué)年人教版七年級(jí)英語(yǔ)Unit1-2單元練習(xí)卷(含答案)
- 水利工程防洪度汛施工方案
- 課堂教學(xué)評(píng)一體化策略
- 寵物店寵物活動(dòng)策劃合同
- 盾構(gòu)施工關(guān)鍵技術(shù)知識(shí)考試題庫(kù)及答案
- 《2024年 大學(xué)計(jì)算機(jī)基礎(chǔ)考試系統(tǒng)的分析與設(shè)計(jì)》范文
- 《公共政策學(xué)(第二版)》 課件 楊宏山 第7-11章 政策評(píng)估-政策分析
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末歷史試題(解析版)
- 2024年浙江省初中學(xué)業(yè)水平考試社會(huì)試題(解析版)
評(píng)論
0/150
提交評(píng)論