• <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

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            java匿名類

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

            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也可以是一個(gè)類 但是你外部調(diào)用的方法必須在你的這個(gè)類或接口中聲明 外部不能調(diào)用匿名類內(nèi)部的方法

            Java中內(nèi)部匿名類用的最多的地方也許就是在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. }   

             

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


            new
            是建立一個(gè) WindowAdapter對(duì)象 ,后面一個(gè) {} 表示這個(gè)括號(hào)中的操作作用于這個(gè)默認(rèn)的對(duì)名象,

            而上面的Java程序中后面是一個(gè)函數(shù)體。
            這個(gè)用法的作用是:創(chuàng)建一個(gè)對(duì)象的實(shí)例,并且 override 它的一個(gè)函數(shù)。
            打開 WindowAdapter 的代碼可以發(fā)現(xiàn)。它是一個(gè)抽象類。它是對(duì) WindowListener 接口的一個(gè)實(shí)現(xiàn)。

            Frame.addWindowListner();
            的參數(shù)是一個(gè) WindowListner ,而實(shí)現(xiàn)上是傳一個(gè)從WindowAdapter 派生出的一個(gè)匿名類。

             

            posted on 2009-08-03 20:15 肥仔 閱讀(906) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Web-后臺(tái)

            97超级碰碰碰碰久久久久| 久久久久久国产a免费观看不卡| 久久噜噜电影你懂的| 精品久久久久久中文字幕大豆网| 久久免费大片| 人妻中文久久久久| 无码八A片人妻少妇久久| 亚洲婷婷国产精品电影人久久| 日韩久久久久中文字幕人妻| 久久毛片免费看一区二区三区| 亚洲欧美精品一区久久中文字幕 | 亚洲精品白浆高清久久久久久| 欧美久久亚洲精品| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲乱码日产精品a级毛片久久 | 亚洲国产精品久久久久婷婷软件 | 精品无码久久久久国产| 久久久久亚洲精品无码蜜桃| 久久精品99久久香蕉国产色戒 | 久久精品人人做人人爽电影| 亚洲国产成人久久综合一| 久久久久久久久久免免费精品| 色99久久久久高潮综合影院| 久久精品亚洲AV久久久无码| 久久精品中文闷骚内射| 99久久人人爽亚洲精品美女| 久久久久国产精品嫩草影院| 久久精品国产99国产精品导航| 久久99热只有频精品8| 久久精品中文字幕有码| 久久99精品国产麻豆宅宅| 国产成人精品久久免费动漫| 亚洲午夜久久久精品影院| 日产精品久久久久久久| 久久99精品国产一区二区三区| 香蕉久久夜色精品国产2020 | 久久精品国产亚洲AV香蕉| 免费国产99久久久香蕉| 久久国产欧美日韩精品免费| 久久夜色tv网站| 无码人妻久久一区二区三区蜜桃 |