小酌JAVA-匿名内部类

什么是匿名内部类?? (小朋友全是问号)
首先匿名类就是没有名字,其次匿名内部类就是简化代码编写,所以匿名类内部只能执行依次,这都是我个人的理解。
我们还是拿例子来看看匿名内部类的使用,这里我们先拿线程Runnable接口为例,如何通过匿名内部类来实现Runnable接口
小酌JAVA-匿名内部类_第1张图片
再让我们看看运行的结果:
在这里插入图片描述
先从程序上来看,这里通过Thread类去创建一个线程,并将该线程起名为“线程1”,然后通过匿名类去实现Runnable接口的run() 方法 这里使用了一个currentThread() 去返回该条线程的名字(这是多线程的相关知识,感兴趣的可以去学习一下)。在run() 方法中输出该条线程的名字,最后让线程运行起来。
再让我们看看通过创建一个类去实现一个接口的例子,看看运行的结果是否相同
小酌JAVA-匿名内部类_第2张图片
运行的结果为:
在这里插入图片描述
我们会看到运行的结果与上一个例子的结果相同,这里是涉及到接口实现的相关知识,就不加以解释。
让我们想一下符合匿名类要那些条件呢??
我个人总结就是,首先必须要有继承或者实现一个接口,但是只能继承一个父类,或者实现一个接口。

Father f = new Father();//new一个对象

这里我们正常去new一个对象,()后的分号则代表结束

Father f = new Father(){...};

这里{… …}中为new出对象的具体的实现方法然后加 ;则代表结束。但是前提是必须要实现了某个接口或者是继承某个类。
让我们使用一个接口来看看匿名类如何实现接口。

小酌JAVA-匿名内部类_第3张图片
在这里插入图片描述
这里我们就不在加以解释,但是是否有疑问,如果想在匿名类中去创建一个方法能否实现呢?如果按照上个例子的方式,是不可以的,但是我们可以通过下面这种方式去创建方法,并且去实现方法。
小酌JAVA-匿名内部类_第4张图片
在这里插入图片描述
到这就是我个人对于匿名类的学习理解,最后如何使用,还是看你是如何处理一个问题,还是多去做一些小项目才能使一些知识点影响更加的是深刻。

你可能感兴趣的:(java)