java编程思想概括(第五章)---隐藏具体实现
隐藏具体实现
——如何将变动的事物与保持不变的事物相互隔离。
1. 包的使用:通过使用Package,访问权限受到影响。包明的唯一性,使得java程序解析,通过classPath以及包名解析到对应的类文件。类名相同,产生冲突,通过包名限定,来处理冲突问题。
2. java访问权限修饰符:(access specifier),public,protected,private
包访问权限:没有指定访问权限,则默认为包访问权限。包中的类可以相互访问。
Public接口访问权限:
Private:你不可以去碰
Protected:继承访问权限:创建新包,能访问父类的public跟protected成员;同一包内,能访问包访问权限的成员(包括,protected)
3. 接口(interface)和实现(implementation):访问权限的控制——具体实现的隐藏(implementation hiding),数据和方法包装进类中,与具体实现的隐藏相结合,成为“封装”。
接口和具体实现相分离:客户端程序员只可以向接口发送消息,这样你就可以随意更改所有不是public的东西。
Class:创建新数据类型,而不仅仅是只创建含有数据和方法的盒子。
方便程序的阅读:将public至于程序的开头,之后是protected,再是包访问权限和private成员。
4. 类的访问权限:
声明类的限制:1.一个编译单元都只能有一个public类(每个编译单元都有一个单一的公共接口,用public类来表现)。
2.public类的名称必须完全与含有该编译单元的文件名称相同。
3.编译单元可以不带public类。
类既不可以是private的,也不可以是protected的,只有两个选择,包访问权或是public。(一个内部类可以是private或是protected的)
将类的构造器指定为private来组织直接创建某个类的实例
1) 创建一个static方法,创建一个新类,并返回它的引用。
2)使用设计模式design pattern。只能创建它的单一的一个对象。类对象作为一个静态私有成员来生成。
——java的访问权限修饰符:确保所有用户都具有能够独立与某个类的底层实现细节的能力;类的创建者,可以按自己的意愿改变底层实施细节。