Thinking in JAVA笔记——第六章 访问权限控制

重构(重写代码)已优化实现是非常现实的需求,但必须让使用者不受影响。

Java提供访问权限控制让类库开发者向客户端程序员指明哪些可用,哪些不可用!

6.1package:类库单元

包内的一组类被组织到一起

用import语句导入某个类或某个包

 每个.java源程序包只能有一个public类,类名与文件名相同,其他类外部不可见,为public类提供支持

6.1.1代码组织

类库实际上是一组类文件.class,每个文件都有一个public类以及任意数量的非public类。使用package语句将同一群组的类文件组织到一起。

package必须是第一行非注释代码

import实质上是导入编译好的类文件以直接使用类!

6.1.2创建独一无二的包名

Internet域名反顺序

 import标准类库编译器根据环境变量查找类文件,否则需要在编译时指定类文件位置,或用ide导入

冲突:若导入两个相同的类并使用,则CE,需手动指明!

6.1.3 定制工具库

可以写自己的工具库

静态导入:导入一个方法或字段等,导入的东西本身是静态static的?

6.1.4 用import改变行为

用package调试???

 

6.2Java访问权限修饰词

public,protected,private主要修饰成员

如果不提供访问权限修饰词,则默认为“包访问权限”

6.2.1包访问权限

包内为public,包外为private

class可用的修饰词为:public,abstract,final

6.2.2public

6.2.3private

使用默认权限的方法,客户端程序员也无法访问,设计时考虑将提供给客户端程序员的方法设为public

private仍然非常重要,尤其在多线程环境下。

好的oo设计应将所有的域设为private,提供get和set方法。

6.2.4protected

处理的是继承的概念。

protected也提供包访问权限(protected类还提供给其他包中的子类,所以比包访问权限要宽松 )

子类会自动调用父类的构造器

 

6.3接口和实现

访问权限控制是为了对具体实现隐藏,该特性在oo中成为封装。

接口和实现分离。客户但程序员只能向借口发送信息。可以随意修改非public的东西?

不知道在讲什么。。。

 

6.4类的访问权限

包或public

 

posted @ 2015-05-16 20:41  cjrzh  阅读(253)  评论(0编辑  收藏  举报