成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

sPeng / 2107人閱讀

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

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

這個(gè)時(shí)候就引入了匿名內(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中的方法在大括號(hào)中實(shí)現(xiàn)了

這樣便可以省略一個(gè)類的書寫

并且,匿名內(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

由上面的例子可以看出,只要一個(gè)類是抽象的或是一個(gè)接口,那么其子類中的方法都可以使用匿名內(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/65927.html

相關(guān)文章

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

    摘要:每個(gè)內(nèi)部類都能獨(dú)立地繼承一個(gè)接口,而無論外部類是否已經(jīng)繼承了某個(gè)接口。因此,內(nèi)部類使多重繼承的解決方案變得更加完整。內(nèi)部類中的與其他類一樣是指的本身。但是靜態(tài)內(nèi)部類卻沒有。 問題:內(nèi)部類、靜態(tài)內(nèi)部類區(qū)別、使用場(chǎng)景? 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 評(píng)論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)部類就是在一個(gè)類內(nèi)部定義的類,它是內(nèi)部類是一個(gè)獨(dú)立的類...

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

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

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

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

    jackzou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<