我的一畝三分地

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

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

          以上是《effective java》中的論述。下面是在網(wǎng)上找到的關(guān)于匿名類的敘述。

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

          posted on 2006-09-24 10:15 王某某 閱讀(248) 評論(0)  編輯  收藏 所屬分類: Java基礎(chǔ)
          主站蜘蛛池模板: 卢氏县| 遵义县| 独山县| 石棉县| 正阳县| 阿拉善左旗| 镇巴县| 万年县| 沅江市| 杭锦旗| 临湘市| 昭平县| 区。| 太和县| 益阳市| 许昌市| 婺源县| 灌南县| 前郭尔| 焉耆| 赤峰市| 手机| 孟连| 衡山县| 阳高县| 永州市| 嘉峪关市| 云安县| 乐都县| 奉贤区| 老河口市| 沁水县| 柘荣县| 龙州县| 卢龙县| 和林格尔县| 濮阳县| 隆安县| 凤凰县| 会同县| 澄迈县|