• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            java匿名類

            匿名類是不能有名稱的類,所以沒辦法引用它們。必須在創建時,作為new語句的一部分來聲明它們。 這就要采用另一種形式的new語句,如下所示: new <類或接口> <類的主體> 這種形式的new語句聲明一個新的匿名類,它對一個給定的類進行擴展,或者實現一個給定的接口。它還創建那個類的一個新實例,并把它作為語句的結果而返回。要擴展的類和要實現的接口是new語句的操作數,后跟匿名類的主體。 如果匿名類對另一個類進行擴展,它的主體可以訪問類的成員、覆蓋它的方法等等,這和其他任何標準的類都是一樣的。如果匿名類實現了一個接口,它的主體必須實現接口的方法

            java 代碼

            1. interface pr   
            2. {   
            3. void print1();   
            4. }   
            5.   
            6. public class noNameClass    
            7. {   
            8. public pr dest()   
            9. {   
            10.     return new pr(){   
            11.      public void print1()   
            12.      {   
            13.       System.out.println("Hello world!!");   
            14.      }   
            15.     };   
            16. }   
            17.   
            18. public static void main(String args[])   
            19. {   
            20.     noNameClass c=new     noNameClass();   
            21.     pr hw=c.dest();   
            22.     hw.print1();   
            23. }   
            24. }   
            25.   

             

            pr也可以是一個類 但是你外部調用的方法必須在你的這個類或接口中聲明 外部不能調用匿名類內部的方法

            Java中內部匿名類用的最多的地方也許就是在Frame中加入Listner了吧。
            如下:

            java 代碼

            1. import java.awt.*;   
            2. import java.awt.event.*;   
            3.   
            4. public class QFrame extends Frame {   
            5.     public QFrame() {   
            6.            this.setTitle(\"my application\");   
            7.   
            8.            addWindowListener(new WindowAdapter() {   
            9.                    public void windowClosing(WindowEvent e) {   
            10.                    dispose();   
            11.                    System.exit(0);   
            12. }   
            13.             });     
            14.   
            15.           this.setBounds(10,10,200,200);   
            16.      }   
            17. }   

             

            內部匿名類,就是建立一個內部的類,但沒有給你命名,也就是沒有引用實例的變量。
            new WindowAdapter() {
                  public void windowClosing(WindowEvent e) {
                         dispose();
                         System.exit(0);
                 }


            new
            是建立一個 WindowAdapter對象 ,后面一個 {} 表示這個括號中的操作作用于這個默認的對名象,

            而上面的Java程序中后面是一個函數體。
            這個用法的作用是:創建一個對象的實例,并且 override 它的一個函數。
            打開 WindowAdapter 的代碼可以發現。它是一個抽象類。它是對 WindowListener 接口的一個實現。

            Frame.addWindowListner();
            的參數是一個 WindowListner ,而實現上是傳一個從WindowAdapter 派生出的一個匿名類。

             

            posted on 2009-08-03 20:15 肥仔 閱讀(907) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

            国产精品久久久久久久久软件| 国产精品免费久久久久久久久| 一本久道久久综合狠狠躁AV| 久久亚洲国产精品123区| 欧美黑人激情性久久| 久久久久人妻一区精品性色av| 亚洲天堂久久精品| 狠狠色丁香久久婷婷综合_中| 久久久久无码精品国产不卡| 久久国产午夜精品一区二区三区| 国内精品伊人久久久久777| 久久99久久99精品免视看动漫| 久久久久久九九99精品| 久久99精品久久久久久野外| 久久99国产精品尤物| 久久人人爽人人爽人人片AV东京热| av色综合久久天堂av色综合在 | 久久亚洲日韩看片无码| 久久久久久亚洲精品成人| 久久精品国产精品亚洲艾草网美妙| 久久亚洲精品成人AV| 亚洲国产婷婷香蕉久久久久久| 77777亚洲午夜久久多喷| 久久精品中文字幕一区| 无码任你躁久久久久久久| 狠狠人妻久久久久久综合| 精品久久久久久| 久久久无码一区二区三区| 亚洲精品无码久久久久sm| 一本大道久久东京热无码AV | 久久综合噜噜激激的五月天| 色偷偷91久久综合噜噜噜噜| 婷婷综合久久狠狠色99h| 久久久久久久综合日本亚洲| 97精品国产91久久久久久| 色欲综合久久躁天天躁蜜桃| 久久婷婷人人澡人人爽人人爱| 日产久久强奸免费的看| 色悠久久久久久久综合网| 亚洲欧美国产日韩综合久久| 久久这里都是精品|