用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("我是内部匿名类");
}
});
}
}