四种访问权限修饰词
java有四种访问权限的修饰词,这四种访问修饰词由大到小分别为:public,protected,defalut,private。如果我们为默认的话那就为defalut。
访问权限 | 含义 | 本类 | 本包的类 | 非本包的子类 | 非本包的非子类 |
public | 公共的 | 是 | 是 | 是 | 是 |
protected | 受保护的的访问 | 是 | 是 | 是 | 否 |
default | 包访问权限 | 是 | 是 | 否 | 否 |
private | 私有权限 | 是 | 否 | 否 | 否 |
public:public之后紧跟着的成员声明自己对每个人都是可用的。
private:除了包含该成员的类以外,其他任何类都无法访问这个成员,也就是处于同一包内的其他类也是不可以访问private成员的(包括子类继承父类时候使用super)。由下面的例子我们可以看到private可以使我们可能想如何创建对象,并阻止别人访问某个特定的构造器。
class Sundae{
private Sundae(){}
static Sundae makeSundae(){
return new Sundae();
}
}
public class IceCream{
public static void main(String[] args){
//!Sundae x = new Sundae();
Sundae x = Sundae.makeSundae();
}
}
protected:当在子类内部访问从父类继承而来的protected字段(方法)时,没有包限制(可以被有继承关系的类自由访问,即子类可以访问它)。当对象通过“.”访问字段(方法)时,被protected修饰的方法(字段)的可见范围是,该字段(方法)被定义的类所在的包。
default:可以被同一包(package)中的任何类访问。