A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© study123 初级黑马   /  2013-7-19 17:20  /  1034 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-21 12:48 编辑

private Handler handler = new Handler(){};
请问这种属于什么形式,怎么理解?创建对象的后面跟着一个大括号表示什么意思?

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

5 个回复

倒序浏览
这是创建了一个匿名子类对象,并将其赋值给handler。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
这里有一个匿名内部类,小括号后跟的是大括号,大括号中是该new 出对象的具体的实现方法。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
这是多态形式,new Handler(){}, 就是匿名内部类中, 代表的是匿名子类对象, 该对象所属的类继承了Handler,并可以在{}中定义自己的特有功能,或者复写Handler的功能。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
这是一个匿名内部类的形式创建一个对象;
Handler类是一个抽象类,不能直接创建对象;
所以要用这种形式 继承Handler类,并且要在大括号里面复写Handler类里面的几个抽象函数,才能创建对象,

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
Handler在Android应用的比较多,主要接受子线程发送的数据, 并用此数据配合主线程更新UI.
Handler类是一个抽象类
如果没有声明一个别的类来继承它的话,需要在程序里面直接生成一个Handler类的话,
就需要用到匿名内部类了,并且需要去实现它的几个抽象函数。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马