【程序编程相关:SUN JSR 168 portlet】
【推荐阅读:java代码审查检查表】 内部类就是嵌套在另一个类的里面的类.一个一般的类是package的直接成员,也就是最顶层的类,而内部类就是在jdk1.1就出现的概念,它主要分成四类:【扩展信息:给定周长下的三角形数量 Java Edi】
1. 静态内部类2. 一般内部类3. 局部类4. 匿名类让我按次序来简单认识一下吧简短地说,静态内部类也就是一个一般类的一个静态成员.像其他的静态方法一样,静态内部类可以访问顶层类的所有静态方法.像静态内部类一样,一般内部类也是扮演着一般类的一个内部成员.但它不像静态内部类,一般内部类需要声明实例化,可以访问所有的成员与方法,甚至可以通过访问this这个reference访问顶层类的成员与方法.局部类就是在一些语句块内声明与只能在语句块内才可以看到的类,就好像方法内的局部变量一样.最后是匿名类,他也就是一个没有名字的局部类.为了更明确的解答你的问题,我会把着重点放到你将会遇到的或者用上的一般内部类与匿名类.从我的角度来说,内部类的好处可以分成三个类别:在面向对象上的好处.在组织结构上好处与回调的好处.在面向对象上的好处以我的浅陋的认识来看,内部类最重要的特点就是允许我们把一些东西放到对象里面去,因为正常情况下我们一般不会这样做的.与如果没有内部类的出现相比,内部类这样的特点让我们的代码更加符合面向对象的思想.让我们来看一下一般内部类,自从它的实例对象成为父实例对象的一个成员部分后,它可以访问父实例对象的所有成员属性与方法.乍眼看去,这好像不大像;但实际上我们已经访问了父实例对象内的方法了.然而内部类又允许我们在逻辑上从父实例对象中分离出来并具体化它.举个例子,一个树类,可能有一个方法或者许多辅助方法来实现这棵树的搜索或者遍历.从面对对象的观点来看,树类就是一棵树,不是一个搜索算法.但你要完成一个树的搜索操作,就必须与这棵树的数据结构有一个密切的关系.一个内部类就是可以把这些逻辑去掉并把它们封装成一个自己的类.所以从面向对象的观点来说,我们已经把那些不属于该类的功能性的东西封装成一个自己的类.通过应用内部类,我们成功地把其搜索算法从树类中分离出来.那么现在,假如我们要改变搜索算法,我们就简单地替换这个内部类就可以了.而内部类在面向对象上的好处就说到这里了,其实我可以继续说下去,但这样会不断扩展地展示代码中面向对象技术带来的好处.组织结构上的好处面向对象设计并不是适合所有的东西的,但幸运的是,内部类还提供了其他更多的好处.从组织结构上的观点来看,内部类允许我们通过运用命名空间来更深层次地组织我们的包结构.类与类之间可以更深层次的嵌套,让层次结构更清晰,取代了这些类一箩筐似的倒在同一层次的包里面.显而易见,如果没有内部类,我们会局限于下面的层次结构:... 下一页