JAVA编程思想读书笔记十一(内部类1)
来源:互联网 发布:威锋网mac论坛 编辑:程序博客网 时间:2024/06/05 10:58
内部类:
在一个类里定义另一个类被称为“内部类” inner class ,内部类是一种非常有价值的特性,能让你在逻辑上将相互从属的类组织起来,并且在类的内部控制访问权限,但内部类与合成是截然不同的。
除非在“宿主类(out class)” 的非static 的方法里面,无论你在哪里创建内部类的对象,都必须用outerClassName.innerClassName 的形式来表示这个对象的类型。
当你将它上传到基类,特别是interface 的时候,就会发现内部类有它自己的特征。(实际上将对象上传给它所实现的接口与将它上传给基类是完全相同)这样任何人都不能看到或者访问到内部类了--也就是interface 的实现了。于是“隐藏实现”就变的轻而易举了。你所得到到,只是一个基类的或者interface的references。
* 将内部类设置private后,所以除了这个包含这个内部类的类之外,其他的谁都不能访问这个类。如果将内部类设置成protected,那同属这个包的类 ,以及这个类的继承类,谁都不能访问这个类。实际上你根本不能将对象下传给private的内部类,(或者是pretected的内部类)除非你继承了这个类,由此,private 的内部类为类的设计者们提供了一种“能彻底杜绝【用具体的类型来编程的所引起的依赖性问题】”,并且完全将实现细节隐藏起来。此外,从客户程序员的角度看,扩展interface也是毫无意义的,因为它根本没法访问public interface 以外的方法。
在一个类里定义另一个类被称为“内部类” inner class ,内部类是一种非常有价值的特性,能让你在逻辑上将相互从属的类组织起来,并且在类的内部控制访问权限,但内部类与合成是截然不同的。
除非在“宿主类(out class)” 的非static 的方法里面,无论你在哪里创建内部类的对象,都必须用outerClassName.innerClassName 的形式来表示这个对象的类型。
当你将它上传到基类,特别是interface 的时候,就会发现内部类有它自己的特征。(实际上将对象上传给它所实现的接口与将它上传给基类是完全相同)这样任何人都不能看到或者访问到内部类了--也就是interface 的实现了。于是“隐藏实现”就变的轻而易举了。你所得到到,只是一个基类的或者interface的references。
* 将内部类设置private后,所以除了这个包含这个内部类的类之外,其他的谁都不能访问这个类。如果将内部类设置成protected,那同属这个包的类 ,以及这个类的继承类,谁都不能访问这个类。实际上你根本不能将对象下传给private的内部类,(或者是pretected的内部类)除非你继承了这个类,由此,private 的内部类为类的设计者们提供了一种“能彻底杜绝【用具体的类型来编程的所引起的依赖性问题】”,并且完全将实现细节隐藏起来。此外,从客户程序员的角度看,扩展interface也是毫无意义的,因为它根本没法访问public interface 以外的方法。
- JAVA编程思想读书笔记十一(内部类1)
- java编程思想读书笔记 第十章 内部类(上)
- java编程思想读书笔记 第十章内部类(中)
- java编程思想读书笔记 第十章 内部类(下)
- 《JAVA编程思想》读书笔记——内部类
- java编程思想读书笔记----第十章 内部类
- java编程思想读书笔记-第八章 接口和内部类
- Java编程思想读书笔记——内部类
- Java编程思想 -- 内部类
- java编程思想--内部类
- java编程思想 -- 内部类
- JAVA编程思想--内部类
- java编程思想-内部类
- java编程思想3editor读书笔记(8 接口与内部类)
- java编程思想读书笔记 第十五章 泛型 (匿名内部类和擦除)
- Java编程思想笔记第十章(内部类)
- Java 编程思想(二)内部类和闭包
- 《Java 编程思想》--第十章:内部类
- 1788
- Endian 的由来
- 初次贴
- Windows Vista Final Build 6.0.6000 RTM (Español-Booteable-Activación) 32bits (Todo en uno=Todas las versiones)
- JAVA编程思想读书笔记十(接口)
- JAVA编程思想读书笔记十一(内部类1)
- ArmStripper v0.1 beta 5
- 复习一下VC
- IIS7 会重用那些不该重用 HttpHandler
- 下拉列表的SelectedIndexChanged
- 关于asp.net c#中对cookie的操作
- 网页编程必看:XML文法分析
- 可扩展消息出席协议:核心
- 当DataSet中包含主/子表时,Update更新步骤