黑马程序员技术交流社区

标题: 关于内部类和匿名内部类 [打印本页]

作者: hamiguadjs    时间: 2014-5-21 22:21
标题: 关于内部类和匿名内部类
本帖最后由 hamiguadjs 于 2014-5-24 01:00 编辑

内部类、匿名内部类的应用场景,和普通类比起来有何优势,如何选择使用。内部类、匿名内部类的字节码文件的生成过程?

作者: Joshua-zr    时间: 2014-5-21 22:31
内部类,匿名内部类主要是用于简化代码书写的,尤其是当需要实现某个接口时只需要创建一个匿名内部类就可以,不需要额外定义对象。
作者: zuxingyu1234    时间: 2014-5-22 00:23
提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的设计者在内部类身上的确是用心良苦
作者: zuxingyu1234    时间: 2014-5-22 00:25
。。。。。。。。。
作者: hamiguadjs    时间: 2014-5-22 08:44
Joshua-zr 发表于 2014-5-21 22:31
内部类,匿名内部类主要是用于简化代码书写的,尤其是当需要实现某个接口时只需要创建一个匿名内部类就可以 ...

谢谢您的答复,:handshake
作者: hamiguadjs    时间: 2014-5-22 08:46
zuxingyu1234 发表于 2014-5-22 00:23
提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested C ...

3Q了,谢谢您的答复!:handshake
作者: 邵镛    时间: 2014-5-22 18:49
以我的部分经验,是简化了很多代码。通常直接在代码中 实现接口的方法即可,不需要新建一个类。
例如:
  1. new Thread(new Runnable(){
  2.                         public void run()
  3.                         {
  4.                                 System.out.println("111");
  5.                         }
  6.                 }).start();
复制代码


在项目中 也可以以类似的方法简化代码
作者: shi980088    时间: 2014-5-22 19:08
内部类用到的很少,主要应用就是内部类可以独自继承或实现一个接口,然后外部类调用,这样可以基本解决java不能多继承的问题,匿名内部类简单的说就是简化内部类的代码,一般EE里面用不到,android开发经常能用到匿名内部类。至于字节码文件的生成过程,好像是有几个class就生成几个字节码文件(这个记不太清了,我一会去翻翻资料)




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