Java提供了3个访问控制符,分别为:
private、public和protected
代表了三种不同的控制级别,另外如果什么访问控制符都不使用的话,则使用的是“默认访问控制权限”,即一共四种不同的控制级别。
Java访问控制级别由小到大如下序列所示:
private –>default –>protected –>public
访问控制级别表如下:
访问范围 | private | default | protected | public |
---|---|---|---|---|
同一个类中 | √ | √ | √ | √ |
同一个包中 | √ | √ | √ | |
子类中 | √ | √ | ||
全局范围 | √ |
对于访问控制符的使用,有以下几点需要注意:
- 访问控制符是用来修饰成员变量和成员方法的,方法内部的变量由于其存在周期只是整个方法,不需要访问控制符来修饰。
- 若某个类主要用作其他类的父类,该类包含的大部分方法可能仅希望被子类重新,而不是被外界调用,那么应该使用protected修饰这些方法。
- Java中没有C/C++语言的struct结构体,但可以用一个类来实现相似的功能,只需要将成员变量的访问修饰符都设置成public即可。
- 当不使用任何访问控制符来修饰类或类成员时,系统默认使用default对应的访问控制级别。处于封装性的考虑,一般很少用到这一权限而多用private访问控制符。