访问权限控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)和private
这几个访问权限修饰词在使用时,是置于类中每个成员的定义之前的-无论它是一个域还是一个方法。每个访问权限修饰词仅控制它所修饰的特定定义的访问权
包访问权限
默认访问权限没有任何关键字,但通过是指包访问权限。这意味着当前的包中的所有其他类对那个成员都有访问权限,但对于包之外的所有类,这个成员却是private
public:接口访问权限
使用关键字pubcli,就意味着public之后紧跟着的成员声明对所有使用者都是可用的。
默认包
两个.java文件在定义处于相同的目录并且没有给自己设定任何包名称,Java将这样的文件自动看作是隶属于该目录的默认包之中
private:无法访问
关键字private的意思是:除了包含该成员的类之外,其他任何类都无法访问这个成员。
protected:继承访问权限
对它的访问权限赋予派生类而不是所有类。并且相同包内的其他了成员可以访问protected元素
访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常被通常称为封装,其结果是一个同时带有特征和行为的数据类型
出于两个很重要的原因,访问权限控制将权限的边界划在了数据类型的内部。第一个原因是要设定程序可使用和不可使用的界限。可以在结构中建立自己的内部机制。第二个原因是:将接口和具体实现进行分离。
为了控制类某个类的访问权限,修饰词必须出现于关键字class之前。
类既不可以是private的,也不可以是protected。所有对于类的访问权限,仅有两个选择:包访问权限或public。如果不希望其他任何人对该类拥有访问权限,可以把所有的构造器都指定为private,从而阻止任何人创建该类的对象。但是有一个例外,就是你在该类的static成员内部可以创建。