我的一畝三分地

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            2 隨筆 :: 14 文章 :: 3 評論 :: 0 Trackbacks
          ???????? java里的嵌套類有四種:靜態成員類(static member class)、非靜態成員類(nonstatic member class)、匿名類(anonymous class)和局部類(local class)。

          ??????? ?靜態成員類和非靜態成員類的區別是:非靜態成員類的每一個實例都隱含著與外圍類的一個外圍實例(enlosing instance)緊密關聯在一起。在非靜態成員類的實例方法內部,調用外圍實例上的方法是有可能的,或者使用經過修飾的this指針可以得到一個指向外圍實例的引用。如果聲明的成員類不訪問外圍實例,則聲明為靜態成員類。如果使用了非靜態成員類,那么它的每一個實例都將包含一個額外的指向外圍對象的引用。

          以上是《effective java》中的論述。下面是在網上找到的關于匿名類的敘述。

          匿名類
          ?????? 匿名類是不能有名稱的類,所以沒辦法引用它們。必須在創建時,作為new語句的一部分來聲明它們。這就要采用另一種形式的new語句,如下所示:?
          new?<類或接口>?<類的主體>
          ?????? 這種形式的new語句聲明一個新的匿名類,它對一個給定的類進行擴展,或者實現一個給定的接口。它還創建那個類的一個新實例,并把它作為語句的結果而返回。要擴展的類和要實現的接口是new語句的操作數,后跟匿名類的主體。
          ?????? 如果匿名類對另一個類進行擴展,它的主體可以訪問類的成員、覆蓋它的方法等等,這和其他任何標準的類都是一樣的。如果匿名類實現了一個接口,它的主體必須實現接口的方法。
          ??????? 注意匿名類的聲明是在編譯時進行的,實例化在運行時進行。這意味著for循環中的一個new語句會創建相同匿名類的幾個實例,而不是創建幾個不同匿名類的一個實例。
          ??????? 從技術上說,匿名類可被視為非靜態的內部類,所以它們具有和方法內部聲明的非靜態內部類一樣的權限和限制。
          ????????如果要執行的任務需要一個對象,但卻不值得創建全新的對象(原因可能是所需的類過于簡單,或者是由于它只在一個方法內部使用),匿名類就顯得非常有用。匿名類尤其適合在Swing應用程序中快速創建事件處理程序。

          posted on 2006-09-24 10:15 王某某 閱讀(245) 評論(0)  編輯  收藏 所屬分類: Java基礎
          主站蜘蛛池模板: 瑞安市| 绥阳县| 孟村| 海阳市| 洪泽县| 奎屯市| 株洲县| 高碑店市| 梁河县| 钟祥市| 林芝县| 内乡县| 黄梅县| 宣威市| 梁河县| 田林县| 玛沁县| 德昌县| 盐源县| 信宜市| 永泰县| 将乐县| 沈阳市| 赞皇县| 平凉市| 托克逊县| 勐海县| 东兰县| 长岭县| 开阳县| 忻州市| 商水县| 宝兴县| 宁武县| 苍梧县| 任丘市| 神农架林区| 尉犁县| 抚州市| 堆龙德庆县| 仪征市|