qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          JAVA學習:成員內部類基本概念及用法

          簡單的說,內部類就是將一個類的定義放到另一個類的定義內部。內部類分為:成員內部類、局部內部類、靜態內部類、匿名內部類。

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

            優點:一方面,內部類作為外部類的成員,可以訪問外部類的私有成員或屬性。(即使聲明為private,但是對于處于其內部的內部類還是可見的。)另一方面,可以內部類定義在外部類不可訪問的屬性。這樣就在外部類中實現了比外部類private還要小的額訪問權限。

            注意:

            內部類是一個編譯時的概念,一旦編譯成功,就會成為完全不同的兩個類。

            對于一個名為Outer的外部類和其內部定義的名為Inner的內部類。編譯完成后出現Outer.class 和 Outer$Inner.class 兩個類

            當Outer是一個private類時,外部類對于其外部訪問是私有的,所以就無法建立外部類對象,進而也無法建立內部類對象。

            局部內部類

            在方法中第一的內部類稱為局部內部類。

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

            注意:

            在類外不可直接生產局部內部類(保證局部內部類對外是不可見的)。

            要想使用局部內部類時需要生產對象,對象調用方法,在方法中才能調用局部內部類。

            通過內部類和接口達到一個強制的弱耦合,用局部內部類來實現接口,并在方法中返回接口類型,使局部內部類不可見,屏蔽實現類的可見性。

            靜態內部類

            靜態內部類可以使用public,protected,private修飾

            靜態內部類中可以定義靜態和非靜態的成員

            注意:

            一個靜態內部類不需要一個外部類的成員:只是靜態內部類和成員內部類的區別。靜態內部類的對象可以直接生成

            這實際上靜態內部類成為了一個頂級類。

            靜態內部類不可用private來進行定義。

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

            匿名內部類

            匿名內部類就是沒有名字的內部類。

            注意:

            匿名內部類不能有構造函數

            匿名內部類不能定義任何靜態成員、方法和類

            匿名內部類不能是public、protected、private、static

            只能創建匿名內部類的一個實例

            一個匿名內部類用其隱含實現一個接口或實現一個類。

            因匿名內部類為局部內部類,所以局部內部類的所有限制都對其生效。

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


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 伽师县| 肃南| 庆云县| 岳池县| 定陶县| 瓦房店市| 乐昌市| 怀远县| 梧州市| 安阳市| 绥阳县| 大连市| 盐城市| 西峡县| 清新县| 罗平县| 仪陇县| 四平市| 鄂托克旗| 石河子市| 紫云| 松潘县| 株洲县| 阳原县| 澄江县| 巴彦县| 扶沟县| 江安县| 平凉市| 寿光市| 饶平县| 尼木县| 太仆寺旗| 马龙县| 时尚| 漠河县| 雅江县| 深圳市| 安岳县| 井研县| 凤冈县|