第六章 访问权限控制
目录
public protected 包访问权限 private
6.1 包:库单元
包内包含有一组类,他们在单一的名字空间之下被组织在了一起
当编写一个Java源文件时,此文件通常被称为编译单元(有时被称为转译单元)。每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类的名称必须与文件名相同。每个编译单元只能有一个public类。如果在该编译单元中还有额外的类的话,那么在包之外是无法看见这些类的。它们主要用来为主public类提供支持。
6.1.1 代码组织
6.1.2 创建独一无二的包名
冲突
编译器提出错误信息,强制明确指明
可以使用单个类导入的形式来防止冲突
6.1.3 定制工具库
6.1.4 用import改变行为
6.1.5 对使用包的忠告
无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构
6.2 Java访问权限修饰词
6.2.1 包访问权限
当前的包中的所有类对那个成员都有访问权限;但对于这个包之外的所有类,没有访问权限
取得对某成员的访问权限的途径
- 该成员为public
- 通过不加访问权限修饰词并将其他类方式于同一个包内的方式给成员赋予包访问权
- 继承而来的类可以访问public protected成员
- 提供访问器和变异器方法(也称作get set方法)
6.2.2 public:接口访问权限
对每个人都是可用的
6.2.3 private:你无法访问
除了包含该成员的类之外,其他任何类都无法访问这个成员
6.2.4 protected:继承访问权限
6.3 接口和实现
访问权限的控制常被称为具体实现的隐藏
把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为封装
将接口和具体实现分类
6.4 类的访问权限
编译单元内完全不带public类也是可行的
类既不可以是private的,也不可以是protected(除非是内部类)
包访问权限的类不可以在包外创建,但仍可使用它的public的static成员