java匿名内部类:

1:匿名内部类,匿名内部类也就是没有名字的内部类。
2:匿名内部类的作用
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。
3:匿名内部类的实现
匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。
4:匿名内部类的创建
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。
package com.mianshi.test;
/**
* 类名称:AnonymousInnerClassTest
* 描述: 匿名内部类测试
* 创建人:王秋林
* 创建时间:2017-2-12
*/
public class AnonymousInnerClassTest {
public static void main(String args[]){
AnonymousInnerClassTest test = new AnonymousInnerClassTest();
test.show();
}
//在这个方法中构造了一个匿名内部类
private void show(){
Out anonyInter = new Out(){//获取匿名内部类实例
void show(){//重写父类的方法
System.out.println("this is Anonymous InnerClass showing.");
}
};
anonyInter.show();//调用其方法
}
}
//这是一个已经存在的类,匿名内部类通过重写其方法,将会获得另外的实现
class Out{
void show(){
System.out.println("this is Out showing.");
}
}
5:匿名内部类的基本实现
(1)抽象方法实现
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();
}
}
运行结果:eat something
(2)接口实现
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();
}
}
运行结果:eat something
由上面的例子可以看出,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现。最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口。
(3)Thread类的匿名内部类实现
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();
}
}
运行结果:1 2 3 4 5
(4)Runnable接口的匿名内部类实现
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();
}
}
运行结果:1 2 3 4 5
二、匿名内部类的注意事项
(1)匿名内部类不能有构造方法。
(2)匿名内部类不能定义任何静态成员、方法和类。
(3)匿名内部类不能是public,protected,private,static。
(4)只能创建匿名内部类的一个实例。
(5)一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
(6)因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
(7)匿名类和内部类中的中的this:有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。
以上就是本篇文章内容,需要的朋友可以参考
# java匿名内部类详解
# java
# 匿名内部类
# 简单谈谈java中匿名内部类构造函数
# java匿名内部类实例简析
# 详解Java匿名内部类
# Java匿名对象与匿名内部类
# 老生常谈 java匿名内部类
# Java中的匿名内部类小结
# java中的匿名内部类详细总结
# Java匿名内部类的使用方法举例详解
# 重写
# 类中
# 多线程
# 是在
# 在这个
# 多个
# 将会
# 两种
# 这是一个
# 没办法
# 对其
# 能有
# 可以使用
# 可以看出
# 指的是
# 来实现
# 第二种
# 要使
# 第一种
# 最常用
相关文章:
如何选择建站程序?包含哪些必备功能与类型?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
北京企业网站设计制作公司,北京铁路集团官方网站?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
大连 网站制作,大连天途有线官网?
网站制作软件有哪些,制图软件有哪些?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何快速建站并高效导出源代码?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
文字头像制作网站推荐软件,醒图能自动配文字吗?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何快速生成橙子建站落地页链接?
如何在云主机快速搭建网站站点?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
建站VPS配置与SEO优化指南:关键词排名提升策略
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
如何选择适合PHP云建站的开源框架?
C#怎么创建控制台应用 C# Console App项目创建方法
如何批量查询域名的建站时间记录?
建站168自助建站系统:快速模板定制与SEO优化指南
建站主机无法访问?如何排查域名与服务器问题
建站之星在线版空间:自助建站+智能模板一键生成方案
,巨量百应是干嘛的?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何在Windows服务器上快速搭建网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
建站之星收费标准详解:套餐费用及年费价格表一览
建站主机服务器选购指南:轻量应用与VPS配置解析
大连网站制作公司哪家好一点,大连买房网站哪个好?
定制建站流程步骤详解:一站式方案设计与开发指南
如何通过FTP空间快速搭建安全高效网站?
建站主机选哪家性价比最高?
建站之星如何开启自定义404页面避免用户流失?
php json中文编码为null的解决办法
寿县云建站:智能SEO优化与多行业模板快速上线指南
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
北京网站制作的公司有哪些,北京白云观官方网站?
如何制作网站标识牌,动态网站如何制作(教程)?
高性价比服务器租赁——企业级配置与24小时运维服务
建站之星如何实现五合一智能建站与营销推广?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
济南企业网站制作公司,济南社保单位网上缴费步骤?
如何通过多用户协作模板快速搭建高效企业网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。