分类: Java
2008-12-21 12:17:19
JAVA学习笔记
第6章 访问权限控制
1.JAVA提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。访问权限控制的等级,从最大权限到最小权限依次为:public, protected, 包访问权限(没有关键词), private。
2.包:库单元。包含有一组类,他们在单一的名字空间之下被组织在一起。
当编写一个java源代码文件时(.java),该文件被称为编译单元;每个编译单元内可以有一个public类,该类的名称必须与文件的名称相同(但不包括文件名的后缀.java)。每个编译单元只能有一个public类,否则编译器不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为他们不是public类,而且它们主要用来为主public类提供支持。
类库实际上是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。因此每个文件都是一个构件。如果希望这些构件从属于同一个群组(同一个包),就可以使用关键字package。如果使用package语句,它必须是文件除注释以外的第一句程序代码。
Java包的命名规则全部使用小写字母。
如果想要使用包中的任何public类,就必须使用关键字import来导入此包中的public类。
从java SE 5.0开始,import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。
示例:
如果在源文件的顶部添加一条语句: import static java.lang.System.*;
就可以使用System类的静态方法和静态域,而不必加类名前缀: out.print(“use import static function”); |
类库设计员需要记住:package和import关键字允许你做的,是将单一的全局名字空间分割开,使得无论多少人使用internet以及JAVA开始编写类,都不会出现名称冲突问题。
3.访问权限修饰词
包访问权限
默认访问权限没有任何关键字,但通常是指包访问权限。如果一个成员(类,成员方法,成员数据)没有任何权限修饰词来修饰,则它具有的是包访问权限;这意味着当前包中的所有其他类对这个成员都有访问权限,但对于这个包之外的所有类,这个成员却是private。
public: 接口访问权限
使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的。
private: 你无法访问
使用private关键字,就意味着除了包含该成员的类之外,其他任何类都无法访问这个成员。
protected: 继承访问权限
使用protected关键字,意味着派生类可以访问基类的protected成员,非派生类则没有这样的权限。
protected也提供包访问权限,相同包内的其他类可以访问protected成员。
4.类的访问权限
类既不可以是private的,也不可以是protected的。对于类的访问权限,只有两个选择:包访问权限和public。