第六章 访问权限控制
问题:如何把变动的事物与保持不变的事物区分开来
我们这一章主要的目的要实现高内聚,低耦合,保持提供给客户端开发者的接口不变,但是里面可以变,这里的接口不变,指你的低耦合性,使开发者不依赖你的类型而进行开发,所以一般都是提供接口
而访问权限控制就是为了实现这个目的
.包:库单元,类库
一个java源文件也叫做编译单元或者转译单元,其内部可以有一个public 类,该类名字与文件名相同,只能有一个,若还有其他类,包外面的是看不见的,因为缺省是包内权限,而类的权限也只能是包内和public
.代码组织
.java文件中每一个类都会有一个输出文件,名字与类名相同,.class
java可运行程序是一组可以打包并压缩为一个java文档文件jar的class文件,java解释器负责这些文件的查找,装载和解释
package与import的作用是将单一的全局名字分开,而避免出现名称冲突的问题,package名称是intenent域名的反顺序
.java解释器的运行过程:
找到环境变量CLASSPATH,解释器获得包名。遇点则替换为反斜杠\,则产生了一个第一无二的路径名.解释器就是这样找到class文件的.
注:工具类的方法一般是公开静态的,可以用静态import导入语句
.java访问权限修饰词
public,任何人都可以访问
包访问权限,也就是不写任何修饰词的时候,默认的访问权限,只能在同一个包(编译单元)才能访问的(类似友元类)
protected,继承访问权限,简单来说就是老爸帮访问银行金卡的权限给了儿子.
private,同一个类的才能访问,同一个文件不同类的不能访问,必须是要同一个类,private非常重要与实用
.接口与实现
这一个可以说是java里面非常重要与实用的特性,在后面的章节会有详细介绍,我们经常把数据与方法包装在类中,然后通过访问权限控制,对具体实现隐藏起来,然后露出一个类型无关的接口供他人使用,这就是良好的封装
一般最好将public放在最前,然后是包权限,然后是protected,private,易于阅读者
.类的访问权限
类只有public 和包权限控制,若不想别人访问,可以在构造器用private,不过内部类可以使private和protected
这一章有一个设计模式,单例设计模式,具体可以去我的博客设计模式那里看
总结
这一章对我而言,是介绍了一个面向对象的入门,java提供访问权限给我们去限制那些使用我们代码的人,让他们接触到他们应该接触到的东西,而不是不应该的,我们提供给他们的是服务,就像电,这个词用得挺好的,就像使用电那样方便,只需要插上插头,不需要理解我插头后面是怎么样运作的,而当我需要发生改革时,插头仍然是三个的,保持了对外的不变性,这样当我需要变革时,我不需要顾虑是否会影响接口使用者而绊手绊脚,而接口使用者而不需要每次我版本升级后,他进行辛苦的代码修改。
注:java之设计模式 http://java.chinaitlab.com/special/patterns/Index.html