Java内部类总结之局部内部类和匿名内部类
来源:互联网 发布:windows7系统修复软件 编辑:程序博客网 时间:2024/05/22 09:48
局部内部类:定义在方法中,可以看作是一个方法中的局部变量,只能在该方法中使用。
测试代码如下:
/** * 定义一个局部内部类,可以将其看作一个方法中的局部变量,只能在该方法中使用 * @author Rao * */class LocalInner{public void doSomething(){int a = 4;final int b = 5;class Inner3{public void test(){//不能访问外部方法中的非终态变量//System.out.println(a);//局部内部类中的方法只能访问其外部方法中声明的final类型的变量System.out.println(b);}}//只能在定义该局部内部类的外部方法里面生成其对象并调用其内部方法new Inner3().test();//上面的一句等价于以下两句//Inner3 inner3 = new Inner3();//inner3.test();}}public class LocalInnerClassTest{public static void main(String[] args){//实际上是执行了new Inner3().test();LocalInner localInner = new LocalInner();localInner.doSomething();//等价于上面的两句new LocalInner().doSomething();}}
匿名内部类:与局部内部类一样,匿名内部类也是定义在方法中的,但匿名内部类不是以‘局部变量’的形式出现,而是以某个方法的参数的形式出现,它没有特定的名字,运行时系统会自动为其取个别名。
测试代码如下:
//匿名内部类public class AnonymousInnerClassTest{@SuppressWarnings("deprecation")//压制警告public String get(Date date){return date.toLocaleString();}public static void main(String[] args){AnonymousInnerClassTest test = new AnonymousInnerClassTest();String str = test.get(new Date());System.out.println(str);/** * 同注释部分不同的是下面生成了一个匿名内部类,同局部内部类一样用在方法里面, * 它会隐式地继承一个父类或实现一个接口,若Date是类就是继承,若是接口就是实现。 * 在这里这个匿名内部类继承了Date,故其继承了toLocaleString方法。 */String str2 = test.get(new Date() {//在匿名内部类里重写toLocaleString方法@Overridepublic String toLocaleString(){return "hello world";}});System.out.println(str2);}}
参考文献:圣思园视频
- Java内部类总结之局部内部类和匿名内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- java内部类之私有内部类、局部内部类、匿名内部类
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- java成员内部类、局部内部类、静态内部类和匿名内部类
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- java的内部类、匿名内部类、局部内部类
- java 成员内部类 局部内部类,匿名内部类
- 内部类---局部内部类和匿名内部类
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java 各种内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java 内部类(分四种:成员内部类、局部内部类、静态内部类和匿名内部类)
- 参加BEA的架构设计师最佳实践培训
- Android中的Selector 背景选择器
- vb
- 读懂Android (1):使用Android内部的DownloadProvider下载文件,并获取cache权限
- SpringMVC深度探险(一) —— SpringMVC前传
- Java内部类总结之局部内部类和匿名内部类
- 错误代码中文查询GetLastError返回代码的含义
- SpringMVC深度探险(二) —— SpringMVC概览
- 08年时写的关于makefile的文章
- Android点滴(1):获取Android系统的唯一识别码
- poj 1029 False coin
- cannot open file "mfc42u.lib"
- SpringMVC深度探险(四) —— SpringMVC核心配置文件详解
- 多核机器上提高make的效率