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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jun_03 中级黑马   /  2015-1-18 23:24  /  1253 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

转的头晕!

8 个回复

倒序浏览
能不能讲个通俗易懂的?
回复 使用道具 举报
匿名内部对象也就是匿名内部类。
匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口,匿名内部类可以访问外部类的私有成员,其他的方式实现接口和继承类做不到 。
实现方式:
SuperType aa = new SuperType(construction parameters){methods and data}

InterfaceType aa = new InterfaceType(){methods and data}
具体实现时需要把SuperType 和InterfaceType 换成具体的超类和接口。
匿名内部类可以访问外部类的私有成员,其他的方式实现接口和继承类做不到内部类应该都可以的。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
new 父类或接口( ){    覆写父类或接口的方法  }


在参数列表需要传入接口类型或父类类型时可以用,
一般父类或接口中方法不超过2个时用
回复 使用道具 举报
哥们先搞懂什么叫匿名对象,看这个就好办了
回复 使用道具 举报
举个例子:
new Thread(){
        public void run() {};
}.start();
就是匿名内部类对象执行了start()方法。
回复 使用道具 举报
老外 中级黑马 2015-1-19 16:58:13
7#
new AbsDemo()//就等于new Inner().show();
                {
                        void show()
                        {
                                System.out.println("x===="+x);
                        }

                }.show()
回复 使用道具 举报
xiaoyi 中级黑马 2015-1-19 17:06:47
8#
匿名内部类由于没有名字
而它是继承了某个类或者实现了接口
然后用父类名new出它的对象,
它的写法就是直接出来它的对象

说白了就是为了简写代码
并且我觉得他的存在也就是为了简写代码
刚开始不懂没什么,
等你学到图形化界面的监听器时
自然就知道了
回复 使用道具 举报
首先要了解匿名类和内部类.
匿名类就是直接 new .比如在调用线程时,只能 new Thread().start() 而不是 Thread t=new Thread(...); t.start();
只有内部类,就是类中的类,为了方便使用原来的属性才写在内部的,否则写另外一个类也是可以的.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马