在java中,定义了三个修饰符用来控制类、类的属性以及类的方法等的访问范围。通过这三个修饰符,可以定义四种程度的限制。
访问控制修饰符的限制程度从高到底为:private<default<protected<public
private:这是限制最严格的一个修饰符,使用这个关键字来限制的属性或者方法,只能在同一个类中被访问。也就是说,在这个类文件之外,这些属性或者方法是被隐藏的。这个修饰符最常用语修饰符中的全局变量。注意,这个修饰符不能用在类的前面。
default:default不是关键字,只是对类,类的属性以及类的方法的访问权限的一种称呼。如果在类、类的属性和类的方法前面没有任何的修饰符,则我们说它的访问权限是default的。在这种情况下,只有类本省或者同一个包中的其它类可以访问这些属性或方法。而对于其他包中的类而言是不可访问的。
protected:protected修饰符修饰的属性或者方法,可以被同一个类,同一个包中的类以及继承子类访问。注意:这个修饰符同样不能用于类前面。
public:这个修饰符对类、类的方法以及类的方法均可用。它的限制是最宽松的,使用这个修饰符修饰的类属性、类的方法可以被任何其他的类访问,无论这个类是否在同一个包中,以及是否是子类等。
一般来说,我们应该将和其它类无关的属性或者方法设置为private,只需要将它给其它类访问的属性或方法才将它设置为public或者protected,或者不加任何修饰符,让其为default。
修饰符 | 同一个类中 | 同一个包中 | 子类中 | 全局 |
---|---|---|---|---|
private | Yes | |||
default | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
注意:default不是java修饰符,它只是表明了一种访问限制状态。