第10章:内部类(上)
内部类,顾名思义,在声明类的内部,是为了处理复杂问题的一种便捷的方式。应用到了递归思想,它可以多层嵌套,就像sql语句一样,每一层内部类对应一类问题,这样层层嵌套,将问题应用递归的思想分解开。这样未必是最好的方式,但却是行之有效的策略方法,将复杂问题简化。这种解决问题的方式最大的特点就是自上而下--树状图。每一层都对上层产生依赖,直到最上层。这应该是内部类的指导思想。
有了指导思想剩下的就是设计的问题,比如说内部类的调用,想生成内部类的对象就一定会要从顶层(最外层)开始创建对象,每一层对象都会有所关联,他们每一层都对应着一类问题的抽象。因为引入了访问权限,所以从上到下应该是都可以生成对象的,因为他们都是被用来处理最外层的一类复杂问题,所以他们的权限可以是互通的,就像正常一个类中即使是private方法也都可以相互调用一样。所以权限问题完全可以当做是普通类的那样。内部类的生成方法示例:Outer.new Inner 。其中Outer和Inner都是对象,“.”是指范围。多层嵌套就是Outer.Inner 1.Inner2 .Inner3 ...。整体还是相对明了的。
每个内部类编译后会产生相应的class文件,内容就是书写内部的时候内容,但是会发现文件名称多了“外层文件名$”的字样,相应的构造方法也都是了,通过这种方式关联上外层对象,也就是将引用关联,创建内部对象时会判断是否存在外层的依赖。
今天整理的是内部类的简单部分,通过这些简单部分演变出现了一些变种,明天整理完。继续