访问权限修饰符
四种访问权限修饰符
Java权限修饰符public
、protected
、default
(默认)、private
置于类的成员定义前,用来限定对象对该类成员的访问权限。
权限从小到大排列: private
、default
(默认)、protected
、public
。
修饰符 | 类内部 | 同一个包 | 不同包 | 同一个工程 |
---|---|---|---|---|
private | yes | |||
default(缺省) | yes | yes | ||
protected | yes | yes | yes | |
public | yes | yes | yes | yes |
Java 有三个显式关键字来设置类中的访问权限:public
(公开),private
(私有)和protected
(受保护)。这些访问修饰符决定了谁能使用它们修饰的方法、变量或类。
public
(公开)表示任何人都可以访问和使用该元素;private
(私有)除了类本身和类内部的方法,外界无法直接访问该元素。private
是类和调用者之间的屏障。任何试图访问私有成员的行为都会报编译时错误;protected
(受保护)类似于private
,区别是子类(下一节就会引入继承的概念)可以访问protected
的成员,但不能访问private
成员;default
(默认)如果你不使用前面的三者,默认就是default
访问权限。default
被称为包访问,因为该权限下的资源可以被同一包(库组件)中其他类的成员访问。
使用访问控制的原因有以下两点:
- 让应用程序员不要触摸他们不应该触摸的部分。(请注意,这也是一个哲学决策。部分编程语言认为如果程序员有需要,则应该让他们访问细节部分。);
- 使类库的创建者(研发程序员)在不影响后者使用的情况下完善更新工具库。例如,我们开发了一个功能简单的工具类,后来发现可以通过优化代码来提高执行速度。假如工具类的接口和实现部分明确分开并受到保护,那我们就可以轻松地完成改造。
从实际开发来说,我们一般使用public和private。
帮我改善此页面 (opens new window)
上次更新: 2020/12/18, 12:50:58