qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          JAVA學(xué)習(xí):成員內(nèi)部類基本概念及用法

          簡單的說,內(nèi)部類就是將一個(gè)類的定義放到另一個(gè)類的定義內(nèi)部。內(nèi)部類分為:成員內(nèi)部類、局部內(nèi)部類、靜態(tài)內(nèi)部類、匿名內(nèi)部類。

            成員內(nèi)部類:作為外部類的一個(gè)成員存在,與外部類的屬性、方法并列。

            優(yōu)點(diǎn):一方面,內(nèi)部類作為外部類的成員,可以訪問外部類的私有成員或?qū)傩浴#词孤暶鳛閜rivate,但是對(duì)于處于其內(nèi)部的內(nèi)部類還是可見的。)另一方面,可以內(nèi)部類定義在外部類不可訪問的屬性。這樣就在外部類中實(shí)現(xiàn)了比外部類private還要小的額訪問權(quán)限。

            注意:

            內(nèi)部類是一個(gè)編譯時(shí)的概念,一旦編譯成功,就會(huì)成為完全不同的兩個(gè)類。

            對(duì)于一個(gè)名為Outer的外部類和其內(nèi)部定義的名為Inner的內(nèi)部類。編譯完成后出現(xiàn)Outer.class 和 Outer$Inner.class 兩個(gè)類

            當(dāng)Outer是一個(gè)private類時(shí),外部類對(duì)于其外部訪問是私有的,所以就無法建立外部類對(duì)象,進(jìn)而也無法建立內(nèi)部類對(duì)象。

            局部內(nèi)部類

            在方法中第一的內(nèi)部類稱為局部內(nèi)部類。

            與局部變量類似,在局部內(nèi)部類前不加修飾符public和private,其范圍為定義它的代碼塊

            注意:

            在類外不可直接生產(chǎn)局部內(nèi)部類(保證局部內(nèi)部類對(duì)外是不可見的)。

            要想使用局部內(nèi)部類時(shí)需要生產(chǎn)對(duì)象,對(duì)象調(diào)用方法,在方法中才能調(diào)用局部內(nèi)部類。

            通過內(nèi)部類和接口達(dá)到一個(gè)強(qiáng)制的弱耦合,用局部內(nèi)部類來實(shí)現(xiàn)接口,并在方法中返回接口類型,使局部內(nèi)部類不可見,屏蔽實(shí)現(xiàn)類的可見性。

            靜態(tài)內(nèi)部類

            靜態(tài)內(nèi)部類可以使用public,protected,private修飾

            靜態(tài)內(nèi)部類中可以定義靜態(tài)和非靜態(tài)的成員

            注意:

            一個(gè)靜態(tài)內(nèi)部類不需要一個(gè)外部類的成員:只是靜態(tài)內(nèi)部類和成員內(nèi)部類的區(qū)別。靜態(tài)內(nèi)部類的對(duì)象可以直接生成

            這實(shí)際上靜態(tài)內(nèi)部類成為了一個(gè)頂級(jí)類。

            靜態(tài)內(nèi)部類不可用private來進(jìn)行定義。

            當(dāng)類與接口(或者是接口與接口)發(fā)生方法命名沖突的時(shí)候,此時(shí)必須使用內(nèi)部類來實(shí)現(xiàn)。用接口不能完全地實(shí)現(xiàn)多繼承,用接口配合內(nèi)部類才能實(shí)現(xiàn)真正的多繼承。

            匿名內(nèi)部類

            匿名內(nèi)部類就是沒有名字的內(nèi)部類。

            注意:

            匿名內(nèi)部類不能有構(gòu)造函數(shù)

            匿名內(nèi)部類不能定義任何靜態(tài)成員、方法和類

            匿名內(nèi)部類不能是public、protected、private、static

            只能創(chuàng)建匿名內(nèi)部類的一個(gè)實(shí)例

            一個(gè)匿名內(nèi)部類用其隱含實(shí)現(xiàn)一個(gè)接口或?qū)崿F(xiàn)一個(gè)類。

            因匿名內(nèi)部類為局部內(nèi)部類,所以局部內(nèi)部類的所有限制都對(duì)其生效。

          posted on 2011-12-13 15:26 順其自然EVO 閱讀(308) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 余干县| 南皮县| 北辰区| 临西县| 天气| 吉安县| 银川市| 罗田县| 中西区| 连平县| 大埔区| 和硕县| 隆安县| 澄江县| 江北区| 龙里县| 特克斯县| 桐梓县| 衡阳县| 武城县| 广昌县| 墨玉县| 旺苍县| 文登市| 万荣县| 淳化县| 秭归县| 禹州市| 斗六市| 冷水江市| 漠河县| 防城港市| 通州区| 禹州市| 汨罗市| 龙川县| 揭东县| 那坡县| 延安市| 成都市| 商城县|