黑马程序员技术交流社区

标题: 什么是匿名内部对象》? [打印本页]

作者: jun_03    时间: 2015-1-18 23:24
标题: 什么是匿名内部对象》?
转的头晕!
作者: jun_03    时间: 2015-1-18 23:26
能不能讲个通俗易懂的?
作者: 流行VS泪痕    时间: 2015-1-18 23:41
匿名内部对象也就是匿名内部类。
匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口,匿名内部类可以访问外部类的私有成员,其他的方式实现接口和继承类做不到 。
实现方式:
SuperType aa = new SuperType(construction parameters){methods and data}

InterfaceType aa = new InterfaceType(){methods and data}
具体实现时需要把SuperType 和InterfaceType 换成具体的超类和接口。
匿名内部类可以访问外部类的私有成员,其他的方式实现接口和继承类做不到内部类应该都可以的。
作者: syz1993    时间: 2015-1-19 16:15
new 父类或接口( ){    覆写父类或接口的方法  }


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

                }.show()

作者: xiaoyi    时间: 2015-1-19 17:06
匿名内部类由于没有名字
而它是继承了某个类或者实现了接口
然后用父类名new出它的对象,
它的写法就是直接出来它的对象

说白了就是为了简写代码
并且我觉得他的存在也就是为了简写代码
刚开始不懂没什么,
等你学到图形化界面的监听器时
自然就知道了
作者: 梁小刀11    时间: 2015-1-19 22:41
首先要了解匿名类和内部类.
匿名类就是直接 new .比如在调用线程时,只能 new Thread().start() 而不是 Thread t=new Thread(...); t.start();
只有内部类,就是类中的类,为了方便使用原来的属性才写在内部的,否则写另外一个类也是可以的.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2