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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hamiguadjs 中级黑马   /  2014-5-21 22:21  /  1941 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hamiguadjs 于 2014-5-24 01:00 编辑

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

7 个回复

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

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

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


在项目中 也可以以类似的方法简化代码
回复 使用道具 举报
内部类用到的很少,主要应用就是内部类可以独自继承或实现一个接口,然后外部类调用,这样可以基本解决java不能多继承的问题,匿名内部类简单的说就是简化内部类的代码,一般EE里面用不到,android开发经常能用到匿名内部类。至于字节码文件的生成过程,好像是有几个class就生成几个字节码文件(这个记不太清了,我一会去翻翻资料)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马