java局部内部类和匿名内部类的比较
来源:互联网 发布:陕西干部网络培训网 编辑:程序博客网 时间:2024/04/30 21:23
局部内部类和匿名内部类,具有相同的能力和作用,但局部内部类的名字在方法外是不可见的。
那么为什么我们使用局部内部类而不是匿名内部类呢?* 唯一理由是:我们需要一个命名的构造器或者需要重载构造器,而匿名内部类只能用于实例初始化.* 另一个理由:需要不止一个该内部类的对象.
代码测试:
interface Counter{ int next();}public class LocalInnerClass { private int count=0; Counter getCounter(final String name){ //局部内部类 class LocalCounter implements Counter{ public LocalCounter(){ System.out.println("LocalCounter()"); } public int next(){ System.out.println(name); return count++; } } return new LocalCounter(); } Counter getCounter2(final String name){ return new Counter() { @Override public int next() { System.out.println(name); return count++; } //匿名内部类不能有带名字的构造器,只能有内容初始化; { System.out.println("Counter()"); } }; } public static void main(String[] args) { LocalInnerClass localInnerClass=new LocalInnerClass(); Counter c1=localInnerClass.getCounter("Local inner"), c2=localInnerClass.getCounter2("annomous class"); for(int i=0;i<7;i++){ System.out.println(c1.next()); } for(int i=0;i<7;i++){ System.out.println(c2.next()); } }}
测试结果
LocalCounter()Counter()Local inner0Local inner1Local inner2Local inner3Local inner4Local inner5Local inner6annomous class7annomous class8annomous class9annomous class10annomous class11annomous class12annomous class13
0 0
- java局部内部类和匿名内部类的比较
- java的内部类、匿名内部类、局部内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- java成员内部类、局部内部类、静态内部类和匿名内部类
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- java 成员内部类 局部内部类,匿名内部类
- 内部类---局部内部类和匿名内部类
- Java 各种内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java 内部类(分四种:成员内部类、局部内部类、静态内部类和匿名内部类)
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- java局部内部类和匿名内部类访问局部final变量的剖析
- Java内部类详解 及 局部内部类和匿名内部类只能访问局部final变量的原因
- 内部类实现方式的比较(匿名内部类,局部内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- Zookeeper的安装与HelloWorld
- iOS NSDate
- pyc9
- 彻底理解js中this的指向!
- 从RCNN到Faster RCNN 的发展
- java局部内部类和匿名内部类的比较
- 9club Online Casino Chinese New Year Angpao (9club,9club online casino,chinese new year angpao,angpa
- H5画的简易时钟
- 基于zookeeper简单实现分布式锁
- 3D打印机调整托盘平面平衡和0点的技巧
- MSSQL中内连接、左外连接、右外连接、交叉连接区别详解
- anything else 和 everything else,something else
- 牛人对STM32的NVIC_PriorityGroupConfig使用及优先级分组方式理解
- mac使用Dryrun做到不用运行Android Studio即可在模拟器安装预览GitHub开源项目