<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數(shù)據(jù)加載中……

    理解Java內(nèi)部類的基本特性(一)

        作者:Flyingis

        內(nèi)部類是
    Java語言一個重要的基本特性,在Java開發(fā)的許多領域都會經(jīng)常用到。內(nèi)部類的定義說簡單一點就是將一個類定義在另外一個類的內(nèi)部。內(nèi)部類允許你把一些邏輯相關的類組織在一起,控制內(nèi)部類代碼的可視性,它和類的組合是完全不同的概念。內(nèi)部類主要有以下比較關鍵的特性:

     

    1.  普通的非內(nèi)部類不能被聲明為privateprotected,否則就失去了創(chuàng)建該類的意義。但是內(nèi)部類通??梢员宦暶鳛?/SPAN>privateprotected類型,因為這樣可以防止他人對該內(nèi)部類實現(xiàn)的功能進行修改,達到隱藏實現(xiàn)細節(jié)的目的。例如:

    class Fruit {

      private class Weight {

    private String i;

    private Weight(String j) {

      i = j;

    }

    public String read() {

      return i;

    }

    }

    }

    class test {

      public static void main(String[] args) {

    Fruit f = new Fruit();

    f.Weight w = f.new Weight(); //不能訪問private類,如果Weightprotected類型則可以

    }

    }

    2.  在方法或某控制語句(if/for/while)的作用域內(nèi)定義內(nèi)部類,將只能在該范圍內(nèi)調(diào)用內(nèi)部類的方法和成員變量。

    3.  匿名內(nèi)部類是一種特殊的內(nèi)部類,如果希望它使用一個在其外部定義的對象,那么編譯器會要求其參數(shù)引用是final的。

    public class Fruit {

      public Tea cont(final int j) {

    return new Tea() {

      private int i = j;

      public int read() {

        return i;

    }

    }; //注意這里的分號

    }

    public static void main(String[] args) {

      Fruit f = new Fruit();

      Tea t = f.cont;

    }

    }

    而當方法cont(final int j)中的參數(shù)j只是被傳遞到匿名類中的構(gòu)造器時,可以不用被聲明為final類型,如return new Tea(j)。這里提到了匿名內(nèi)部類的構(gòu)造器,那么它是怎么被初始化的呢?

    public class Fruit {

      public Tea cont(int j) {

    return new Tea(j) {

    System.out.println(j);

    };

    }

    }

             還可以這樣初始化匿名內(nèi)部類:

    public class Fruit {

      public Tea cont(final int j) {

    return new Tea(j) {

      int i;

      // 初始化匿名內(nèi)部類

      {

      i = j;

      System.out.print(i);

    }

    };

    }

    }

             方法cont()可以被稱為實例初始化方法,使得匿名內(nèi)部類通過構(gòu)造器而被初始化,在實際應用中,我們不能重載實例初始化方法,因為匿名內(nèi)部類只能有一個構(gòu)造方法。

    posted on 2005-11-04 17:11 Flyingis 閱讀(1495) 評論(1)  編輯  收藏 所屬分類: JavaSE

    評論

    # re: 理解Java內(nèi)部類的基本特性(一)[原創(chuàng)]  回復  更多評論   

    恩,支持`!太需要這樣的內(nèi)容了
    2005-11-08 12:56 | 夢在上海
    主站蜘蛛池模板: 一个人看的hd免费视频| h视频在线免费观看| 亚洲熟妇无码av另类vr影视| 久久国产高潮流白浆免费观看| 亚洲裸男gv网站| 窝窝影视午夜看片免费| 亚洲国产精品毛片av不卡在线| 久久精品国产亚洲AV高清热| 免费福利在线观看| 日韩国产免费一区二区三区| 欧洲亚洲国产清在高| 曰批全过程免费视频在线观看无码| 亚洲熟妇无码八AV在线播放| 水蜜桃视频在线观看免费播放高清| 国产亚洲精品xxx| xxxxx做受大片视频免费| 青青草原亚洲视频| 国产精品亚洲综合网站| 亚洲JIZZJIZZ中国少妇中文| 久久国产乱子伦精品免费午夜| 免费国产在线观看| 中文字幕免费观看视频| 免费大片黄手机在线观看| 天堂亚洲免费视频| 一区二区三区亚洲| 拍拍拍又黄又爽无挡视频免费| 亚洲图片在线观看| 天天摸夜夜摸成人免费视频 | 理论亚洲区美一区二区三区 | 香蕉免费一区二区三区| 亚洲国产片在线观看| 国产精品无码免费视频二三区 | 精品无码无人网站免费视频| 亚洲一卡2卡三卡4卡无卡下载 | 毛片a级毛片免费播放下载| 国产精品亚洲lv粉色| 亚洲色精品aⅴ一区区三区| 97公开免费视频| 日韩色日韩视频亚洲网站| 久久精品国产亚洲av麻豆| 国产午夜鲁丝片AV无码免费|