在Java中,所有事物都具有某种形式的访问权限控制。
访问权限的控制等级从最大到最小依次为:public,protected,包访问权限(无关键词)和private。
public,protected和private这几个Java访问权限修饰词在使用时,是置于类中每个成员(域或者方法)定义之前的。
一、类成员的访问权限
取得对某成员的访问权的唯一途径是:
1).使该成员成为public。无论谁在哪里,都可以访问该成员;
2).通过不加访问权限的修饰词并将其他类放置于同一包内的方式给成员赋予包访问权限,包内的其他类可以访问该成员;
3).继承而来的类既可以访问public成员也可以访问protected成员。
4).提供访问器和变异器方法,以读取和改变数值。
1.包访问权限
默认访问权限没有任何关键字,但通过是指包访问权限,这表示当前报中的所有其他类都对那个成员有访问权限,但是对于这个包之外的所有类,这个成员确是private。
包访问权限将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。
注意:如果两个类处于相同的目录下,并且没有给自己设定任何包名称,Java会将这样的文件自动看作是隶属于该目录的默认包之中,于是这些文件互相之间有包访问权限。
下面的例子说明了这个问题:
//类Cake和Pie处于同一目录下,没有明确的显示在任何包中
class Pie{
void f(){
System.out.println("Pie.f()