内部类的分类:成员内部类,静态内部类,局部内部类,匿名内部类
成员内部类:如同类的普通成员一样。
1 可以加任意的修饰:private, protected.(顶级类只可以为public, default)
2 内部类不可脱离其外部类的限制使用, 因此在外部类以外创建内部类要这样:
OuterClass outerObject=new OuterClass(params);
OuterClass.InnerClass innerObject=outerObject.new InnerClass(params);
3 内部类对象可以访问外部类的任意变量或方法(包括private变量或方法);因为Java编译器在创建内部类对象时,隐式的把其外部类对象的引用也传了进去并一直保存着。
4 在内部类中,与外部类同名的成员会被屏蔽, 不过可以这样访问外部的同名属性: OuterClass.this.field ;
5 内部类可以实现一个外部接口或抽象类, 外部类返回这样的一个接口,以达到隐藏接口的实现的目的.
6 非静态内部类不能有静态成员,因为它违背了"成员类必须依赖外部类而存在"的原则(静态成员在Class被load的时候就初始化了);
静态内部类:如同类的静态成员一样; 它和成员内部类的区别是它没有指向外部类的引用;
1 创建静态内部类对象:OuterClass.InnerClass obj = OuterClass.InnerClass(params);
2 静态内部类可以有非静态成员;
3 静态内部类只能访问外部类的静态成员;
局部内部类:方法体或者代码片断中定义的类
1 局部内部类前面不能有access修饰符;
2 它有它自己的作用域,超出了这个范围就无效(无法使用);
3 它可以访问外部类的所有成员(因为外部类的成员对该方法可见);
4 定义在方法体中的内部类只能访问该方法的final变量,原因:定义在方法体中的变量会随着方法的退出而消亡,通过定义其为final变量,可以扩展其生命期;
5 定义在代码块中的内部类只能使用在该block中定义的final变量;
匿名内部类:在某些情况下,我们只需要内部类的一个对象,而不需要该类的名字;
1 匿名内部类的实例化: new SomeInterfaceOrClass(){......}; 意思是创造一个实现(继承)了SomeInterfaceOrClass的类的对象;
分享到:
相关推荐
java 成员内部类使用 内部匿名类 方法参数匿名类 方法匿名类
java内部类使用例子,可以运行
对于Java内部类的使用进行总结,根据语法,特征,注意事项等创建出的关于内部类的思维导图,欢迎下载使用!编辑软件freemind
java 静态内部类的使用规范 java 静态内部类的使用规范
Java内部类是Java言语的一个很...但是幕后英雄也有用武之地,在很多时候,恰当的使用Java内部类能起到让人拍案叫绝的作用。本文试图谈一谈让这个幕后英雄也有用武之地的四个场景,希望引起大家对使用Java内部类的兴趣。
计算机后端-Java-Java核心基础-第17章 异常处理 05. 局部内部类使用的一个注意点.avi
NULL 博文链接:https://killeraction.iteye.com/blog/789906
//从阅读角度,这里预期打印a=20,然而只会打印出a=10,会让人误解,因为在Inner的change()中修改的是Inner内部类对象的this.a,它是m
Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存,在Android中,Handler对象通常会被用来在主线程(UI线程)中处理消息,以更新UI界面。当我们在Handler对象中使用匿名内部类...
8.1.2 内部类使用;8.1.2 内部类使用;8.1.3 学生实践练习;8.1.3 学生实践练习;8.1.3 学生实践练习;8.1.3 学生实践练习;8.1.3 学生实践练习;8.1.3 学生实践练习;8.2 静态内部类;8.2.1 静态内部类的实现 ;8.2.1 静态...
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
介绍一些内部类的使用方法,方便大家查阅。通时还有一些入门的stream操作。摘要必须大于50个字节!
java 局部内部类的使用规范 java 局部内部类的使用规范
主要介绍了Java中内部类使用方法,结合具体案例形式分析了Java内部类原理、调用方法及相关使用注意事项,需要的朋友可以参考下
通过该代码,我们将学习如何在Java中定义和使用内部类。这个案例展示了内部类的基本语法和用法,并提供了一个实际场景来演示内部类的灵活性和功能。 适用人群: 这个源码资源适用于Java开发者,特别是对内部类概念...
java 成员内部类的使用规范 java 成员内部类的使用规范
本文主要介绍了java内部类使用总结。具有很好的参考价值,下面跟着小编一起来看下吧
面向对象程序设计中,可以将一个类的定义 放在另一个类的内部,这就是内部类(有的地方叫嵌套类), 包含内部类的类也被称为外部类(有的地方也叫宿主类...但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。