您的位置首页生活百科

用java生成和使用匿名内部类(12)

用java生成和使用匿名内部类(12)

的有关信息介绍如下:

用java生成和使用匿名内部类(12)

匿名内部类是一个特殊的类,它是在其他类的内部,而且它还没有名字,而且靠

在其他类中生成接口的匿名类,而且还只能使用一次,接下来我们就来认识下这

个神奇的匿名内部类吧!

1.如图所示,我们点击“文件”之后在弹出的下拉列表菜单中,我们选择“新建

”,之后在弹出的下拉列表菜单中我们点击“java项目”来建立一个java的项目

2.如图所示,在弹出的对话框中,我们依次填写java的项目名字为“niming”之

后点击完成按钮即可。

3.如图所示,我们在这个java项目上鼠标右击在弹出的下拉列表菜单中,我们点

击“新建”这一项,在弹出的下拉列表菜单中点击选择“类”这一项。

4.如图所示,在弹出的对话框中,我们依次填写类的名称为“NiMingJ”,然后我

们直接点击“完成(F)”按钮,即可创建一个类文件(注意:由于小编已为大家

提前写好了,所以完成按钮为暗色,下面创建类文件时,完成按钮都为暗色)。

5.如图所示,我们写了一个接口的类—NiMingJ。这是为生成匿名内部类准备的。

6.如图所示,我们给这个类写一个抽象的函数(抽象函数没有函数体)。

7.如图所示,我们点击新建类的按钮来新建一个类文件。

8.如图所示,在弹出的对话框中,我们依次填写类的名称为“niming”,之后我

们点击“完成(F)”按钮即可创建这个类。

9.如图所示,我们定义一个“NiMing”的外部类,为生成匿名内部类做准备。

10.如图所示,我们定义一个w()的方法,并且为期设置一个NiMingJ类型的参数,

并且调用s对象的n1方法。

11.如图所示,我们再新建一个NMtest的类来调用我们刚才写的类。我们依次填写

它的名字为NMtest,并且勾选方法存根,让其自动生成一个主函数。

12.如图所示,这是我们写的类,并且有一个启动的主函数。

13.如图所示,我们先new一个NiMing类的对象s1,让我们可以调用它的w()方法。

14.如图所示,我们将接口类NiMingJ先new出来一个对象,此对象无名字,并且其

我们将这个这个匿名类的n1方法进行覆写,所以这就是一个无名字的类,所以就

是匿名的类,由于它在NMtest的内部,所以其为匿名内部类。

15.如图所示,我们点击编译运行按钮,来编译运行这个java类文件,我们看到其

输出了“我是内部匿名类”。

16.这是java的关于java生成和使用匿名内部类的源代码可以直接进行编译运行,

希望大家能够从中获益良多(下面每一个package都是一个独立的java类文件,需

要单独复制存放)。

package niming;

//这是一个接口类——NiMingJ

public interface NiMingJ {

// 抽象方法n1()

void n1();

}

package niming;

//这个是外部类

public class Niming {

//这个w()的自定义的函数的参数为NiMingJ接口类函数类型的对象

void w(NiMingJ s) {

//调用s对象的n1方法

s.n1();

};

}

package niming;

//写一个测试内部匿名类的函数

public class NMTest {

public static void main(String[] args) {

// TODO 自动生成的方法存根

// 先new一个NiMing类的对象

Niming s1 = new Niming();

//调用s1的w()方法,并new一个接口类NiMingJ的对象,此对

象无名字

//所以为匿名类的对象,类也为匿名类,它可以new出来,并覆

写接口类

//NiMingJ的n1方法

s1.w(new NiMingJ() {

public void n1() {

//输出一句话证明接口类可以通过在内部类

的方式new出来,

//还是匿名的

System.out.println("我是内部匿名类");

}

});

}

}