分类如下:
内部类的实例 与 外部类的实例 共享一种“特殊关系”,这种“特殊关系”为内部类中的代码 提供
对封装(外部)类的成员的访问,就好像内部类是外部类的一部分一样,内部类就是外部类的一个完整的、正式的成员,内部类的实力可以访问外部类的所有成员,甚至是那些标识为private的成员。
一、常规 内部类
常规内部类是指将内部类的定义放在封装类(外部类)的大括号对里面,但是位于任何方法或其他代码块之外。
常规内部类不能有任何类型的静态声明
。
声明内部类的引用变量
:
(1)在外部类里,可以使用 InnerClass in
(2)在外部类之外,要使用 OuterClass.InnerClass in
创建内部类的实例
,必须具有一个与这个内部类相关的外部类的实例:
(1)外部类实例代码里面(非static方法或static块)实例化内部类
:
可以直接使用 new InnerClass( );
(2)外部类实例代码之外(外部类的static方法或static块 或
其他类) 实例化内部类
:
需要有一个对外部类的引用 new OuterClass( ) .new
InnerClass( ) 或 outerObjRef .new InnerClass( )
在内部类的内部 引用 自身或外部类的实例
:
(1)引用自身的实例:this
(2)引用外部类的实例:OuterClass.this
常规内部类就像实例变量和方法一样,他们是外部类的成员,能够应用的修饰符
有:
final
abstract
public
protected
private
static (static会把内部类变成一个静态嵌套类)
strictfp
二、局部方法 内部类
定义在方法里的内部类。声明或实例化该内部类必须在同一个方法内,且必须在类定义代码之后。
局部方法内部类对象不能使用它所在的方法的局部变量,除非局部变量被标识为final。(主要是因为内部类实例可能会比栈
结构的生命场,因此,局部变量可能在内部类对象仍然存活时就消失了)
与局部变量声明的规则相同,局部方法内部类的修饰符只有 abstract 和 final
在一个静态方法内声明的局部类只能访问该封装类的静态成员
。
三、匿名 内部类
(1)匿名子类 (实际上是扩展一个父类)
(2)匿名实现类 (实际上是实现一个接口)
四、静态嵌套类
也称作静态内部类,但是,按照内部类的标准定义,它们根本不是内部类
。内部类(无论哪种形式)与外部类共享一种特殊关系(或者更准确的说,是两个类的实例共享一种关系),静态嵌套类则没有。静态嵌套类就是在另一个类作用域内的非内部类(也称作“顶级”类)。因此,对于静态类,更重要的是名字空间的解析,而不是两个类之间的隐含关系。
声明静态嵌套类
与常规内部类一样:
(1)外部类里,可以使用 InnerClass in
(2)外部类之外,要使用 OuterClass.InnerClass in
实例化静态嵌套类
:
(1)外部类里,可以直接使用 new InnerClass( )
(2)外部类之外,要使用 new OuterClass.InnerClass( )
ps:在其他类里方法某个外部类的内部类 跟访问外部类的其他成员一样,也要考虑外部的访问权限与内部类的访问权限。
- 大小: 11.1 KB
分享到:
相关推荐
几种内部排序算法总结!(冒泡排序、快速排序、直接插入排序、拆半插入排序、简单选择排序)
这是一份蓝色商务工作总结PPT模板,第一PPT模板...幻灯片模板内部设计很简单基本跟首页一致; 本模板适合用于制作工作总结PPT,年终工作汇报幻灯片等。 关键词:蓝色PPT背景,工作总结PPT模板下载,.PPTX格式;
工作总结PPT模板内部,使用彩色微立体的设计样式,设计了一套幻灯片图表,方便制作PowerPoint使用; 关键词:白色幻灯片背景,微立体PPT模板,简约、简单、简洁PPT模板,动态幻灯片模板,年终总结PowerPoint模板...
内部稽核总结报告表DOC对一个HR的帮助是很大的,能够帮助更好的管理公司,让事情变得更加简单,小编提供...该文档为内部稽核总结报告表DOC,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
这是一份蓝色简约年终工作总结PPT模板,第一PPT模板网提供各类工作汇报PPT模板免费...关键词:蓝色幻灯片比较,简洁、简约、简单PPT模板,山峰幻灯片背景图片,工作总结PPT模板,工作汇报幻灯片模板下载,.PPTX格式;
7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和finalize() 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行期类型...
JDK的主要包,import(导入类),package(包机制),继承(extends)使用要点,implements,方法的重写(override),final(关键字)使用,instanceof(关键字),组合的核心,super本质是什么,封装(encapsulation),封装的简单规则,访问...
gcc4.4.6,不能完整支持C++11,而且有内部有基础库早已支持了C++11 STL的部分功能),再加上自己的练习也写得少,了解仅是几点简单的皮毛,这里对C++11学习总结一番,期望对他人以及未来的我有点技术知识索引上的...
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:...
简单总结一下设计思路,一些疑问和今后要完善的地方,采用的基本上都是固件库开发怎么配置网上都有就不细说了。文件在最后,单片机型号STM32F103RCT6 (ps:大四辣鸡一个,半瓶水晃荡着做的,有很多知识和理解受制于...
第一部分 vhdl程序中的基本问题总结 1. 关于端口 VHDL共定义了5种类型的端口,分别是In, Out,Inout, Buffer及Linkage,实际设计时只会用到前四种。In和Out 端口的使用相对简单。这里,我们主要讲述关于buffer和inout...
总结一份vue面试经,内容由浅至深来总结vue相关的重点知识,以及面试官提问概率较高的专业问题,结合面试题去文档进行了解与学习可以大幅度提高面试经验。 下面简单介绍一下vue: vue是一个用于创建用户界面的开源...
11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 默认控制符:仅在本包中可见 ...
11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 默认控制符:仅在本包中可见 ...
232 11.7 习题 232 第12章 内部类(精彩视频:71分钟) 234 12.1 非静态内部类 234 12.1.1 创建非静态内部类 234 12.1.2 在外部类中访问内部类 235 12.1.3 在外部类外访问内部类 236 12.1.4 在内部类中访问外部类 ...
在网络边界、区域均部署了防火墙,实现了边界隔离,内部部署IDS对外部攻击行为进行监测和检测。系统通过北信源准入网关对终端用户的非法外联进行了管控,其安全审计和设备防护措施有效可控。 通过VLAN划分与网络...
7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行期类型标识 7.9 ...
7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和finalize() 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行...
排序算法总结常见排序算法如下:直接插入排序希尔排序简单选择排序堆排序冒泡排序快速排序归并排序技术排序它们都属于内部排序,也就是只考虑数据量较小仅需要使用内部的排
7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和finalize() 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行期类型...