访问修饰符
package
在给定package名称后,即隐含地指定了某个目录结构。这个package必须置于其名称所指的目录之中。从CLASSPATH所包含的目录出发,必须能够查找至此目录。
访问修饰符
Java访问修饰词public、protected、private应该置于class内的每个成员的定义前,无论此成员究竟是数据成员或函数。每个修饰词仅控制它所修饰的那一份定义的访问权限。
在C++中,访问权限修饰词控制着紧接于其后的所有定义,直到另一个访问权限修饰词出现。
friendly
虽然缺省的访问权限不需要任何关键字,但通常被称为friendly。意思是同一个package内的其它所有class都可以访问friendly成员,但对package以外的class则形同private。因此friendly访问权限也被称为package访问权限。
public
当使用关键字public,代表“紧接于public之后的成员将可为每个人所用”,特别是对于此一程序库的使用者。
protected
只被继承类所访问到的权限,使用protected进行修饰。
private
关键字private表示“除了当事人所在的class,没有任何人可以访问这个成员”。即使是同一个package内的其它class,也无法访问你的private成员。这种声明方法无异于隔离自己,因此,private得以自由更动自己的成员,而无需担心这么做是否影响同一个package下的其它class。
Class的访问权限
class不能是private或protected。所以对于class只有两个选择:friendly或者public。如果不希望其它任何人取用某个class,请将其所有构造函数声明为private,这么一来便可阻止任何人产生对象,唯有一个例外,那就是在 class static 成员中可以办到。通过statci成员来创建构造函数被声明为private的方法,常常用来实现单例,即整个程序只能产生唯一一个这个类的对象。