成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

匿名內(nèi)部類總結(jié)

sPeng / 2062人閱讀

摘要:中的匿名內(nèi)部類總結(jié)實(shí)例不使用匿名內(nèi)部類來實(shí)現(xiàn)抽象方法運(yùn)行結(jié)果可以看到,我們用繼承了類,然后實(shí)現(xiàn)了的一個實(shí)例,將其向上轉(zhuǎn)型為類的引用但是,如果此處的類只使用一次,那么將其編寫為獨(dú)立的一個類豈不是很麻煩這個時候就引入了匿名內(nèi)部類實(shí)例匿名內(nèi)部類的

java中的匿名內(nèi)部類總結(jié)
實(shí)例1:不使用匿名內(nèi)部類來實(shí)現(xiàn)抽象方法

abstract class Person {
    public abstract void eat();
}
 
class Child extends Person {
    public void eat() {
        System.out.println("eat something");
    }
}
 
public class Demo {
    public static void main(String[] args) {
        Person p = new Child();
        p.eat();
    }
}

運(yùn)行結(jié)果:eat something

可以看到,我們用Child繼承了Person類,然后實(shí)現(xiàn)了Child的一個實(shí)例,將其向上轉(zhuǎn)型為Person類的引用

但是,如果此處的Child類只使用一次,那么將其編寫為獨(dú)立的一個類豈不是很麻煩?

這個時候就引入了匿名內(nèi)部類

實(shí)例2:匿名內(nèi)部類的基本實(shí)現(xiàn)

abstract class Person {
    public abstract void eat();
}
 
public class Demo {
    public static void main(String[] args) {
        Person p = new Person() {
            public void eat() {
                System.out.println("eat something");
            }
        };
        p.eat();
    }
}

運(yùn)行結(jié)果:eat something

可以看到,我們直接將抽象類Person中的方法在大括號中實(shí)現(xiàn)了

這樣便可以省略一個類的書寫

并且,匿名內(nèi)部類還能用于接口上

實(shí)例3:在接口上使用匿名內(nèi)部類

interface Person {
    public void eat();
}
 
public class Demo {
    public static void main(String[] args) {
        Person p = new Person() {
            public void eat() {
                System.out.println("eat something");
            }
        };
        p.eat();
    }
}

運(yùn)行結(jié)果:eat something

由上面的例子可以看出,只要一個類是抽象的或是一個接口,那么其子類中的方法都可以使用匿名內(nèi)部類來實(shí)現(xiàn)

最常用的情況就是在多線程的實(shí)現(xiàn)上,因?yàn)橐獙?shí)現(xiàn)多線程必須繼承Thread類或是繼承Runnable接口

實(shí)例4:Thread類的匿名內(nèi)部類實(shí)現(xiàn)

public class Demo {
    public static void main(String[] args) {
        Thread t = new Thread() {
            public void run() {
                for (int i = 1; i <= 5; i++) {
                    System.out.print(i + " ");
                }
            }
        };
        t.start();
    }
}
運(yùn)行結(jié)果:1 2 3 4 5

實(shí)例5:Runnable接口的匿名內(nèi)部類實(shí)現(xiàn)

public class Demo {
    public static void main(String[] args) {
        Runnable r = new Runnable() {
            public void run() {
                for (int i = 1; i <= 5; i++) {
                    System.out.print(i + " ");
                }
            }
        };
        Thread t = new Thread(r);
        t.start();
    }
}

運(yùn)行結(jié)果:1 2 3 4 5

注明:摘選自博客:http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65927.html

相關(guān)文章

  • java內(nèi)部總結(jié)

    摘要:每個內(nèi)部類都能獨(dú)立地繼承一個接口,而無論外部類是否已經(jīng)繼承了某個接口。因此,內(nèi)部類使多重繼承的解決方案變得更加完整。內(nèi)部類中的與其他類一樣是指的本身。但是靜態(tài)內(nèi)部類卻沒有。 問題:內(nèi)部類、靜態(tài)內(nèi)部類區(qū)別、使用場景? 1.靜態(tài)內(nèi)部類可以有靜態(tài)成員(方法,屬性),而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員(方法,屬性)。 2.靜態(tài)內(nèi)部類只能夠訪問外部類的靜態(tài)成員,而非靜態(tài)內(nèi)部類則可以訪問外部類的所有...

    xiaodao 評論0 收藏0
  • Java系列之內(nèi)部

    摘要:方法內(nèi)部類就是局部內(nèi)部類,一般定義在類的局部位置,它可以訪問當(dāng)前代碼塊及外部類的所有變量。 今天溫習(xí)一下 Java 中的內(nèi)部類,內(nèi)部類一般有如下幾種:靜態(tài)內(nèi)部類、成員內(nèi)部類、匿名內(nèi)部類和方法內(nèi)部類,下文中將主要介紹靜態(tài)內(nèi)部類和成員內(nèi)部類,主要內(nèi)容如下: 概述 靜態(tài)內(nèi)部類 成員內(nèi)部類 匿名內(nèi)部類和方法內(nèi)部類 總結(jié) 概述 顧名思義內(nèi)部類就是在一個類內(nèi)部定義的類,它是內(nèi)部類是一個獨(dú)立的類...

    crelaber 評論0 收藏0
  • Java知識點(diǎn)總結(jié)(三個步驟)

    摘要:對于一個名為的外圍類和一個的內(nèi)部類,在編譯成功后,會出現(xiàn)這樣兩個文件和。 Java知識點(diǎn)總結(jié)(三個步驟) @(Java知識點(diǎn)總結(jié))[Java, Java面向?qū)ο骫 [toc] 1-定義類 修飾符 訪問修飾符: public protected default private 其他修飾符 abstract:抽象類不能實(shí)例化,專門用于繼承的類final:最終類不能被繼承 類名(駝峰命名...

    syoya 評論0 收藏0
  • Java內(nèi)部(Inner Class)小記

    摘要:要注意的是,成員內(nèi)部類不能含有的變量和方法。匿名內(nèi)部類是唯一一種沒有構(gòu)造器的類。靜態(tài)嵌套類又叫靜態(tài)局部類嵌套內(nèi)部類,就是修飾為的內(nèi)部類。以上是對內(nèi)部類的一些學(xué)習(xí)和總結(jié),紕漏之處希望各位小伙伴友情指點(diǎn),共同進(jìn)步。 內(nèi)部類(inner class)是定義在另一個類中的類,類名不需要和文件夾相同。但為什么要使用內(nèi)部類呢?其主要原因有以下三點(diǎn):  1.內(nèi)部類方法可以訪問該類定義所在的作用域中的...

    jackzou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<