龙空技术网

5分钟课堂:Java类中成员访问控制

xdchen 74

前言:

今天看官们对“java中什么是访问控制符”可能比较关切,朋友们都需要分析一些“java中什么是访问控制符”的相关知识。那么小编也在网上收集了一些有关“java中什么是访问控制符””的相关文章,希望咱们能喜欢,大家快快来学习一下吧!

访问权限实现了一定范围内的信息隐藏。

Java中针对类的每个属性和方法都可以有访问权限的控制。Java支持四种属性和方法的访问级别: private、default、protected和public。

具体的访问权限如表1所示。

表 1 Java中的访问权限

范围

约束符

当前类

相同包

子类

所有类

类图描述符

private

可以

-

无(default)

可以

可以

~

protected

可以

可以

可以

#

public

可以

可以

可以

可以

+

私有访问权限(private)

如果类里的一个成员(包括属性、方法和构造方法等)使用private访问控制符来修饰,则这个成员只能在当前类的内部被访问。很显然,这个访问控制符用于修饰属性最合适,可以把属性隐藏在类的内部。

类中的一些辅助方法也可以设为private访问权限,因为这些方法只是为当前类的其他方法服务,没有必要让其他类知道,private方法的好处是对方法的修改不会影响其他类。

包访问权限(default)

包访问权限,也称default访问控制。可以用于类的成员,也可以用于定义类。包访问控制可以让同一包中的类更自由地相互访问,但对包外类的访问加以控制。

如果类里的成员(包括属性、方法和构造方法等)不使用任何访控制符修饰,就称它是包访问权限,也称default访问控制,成员可以被相同包下的其他类中直接访问。

一个外部类不使用不使用public修饰,该类可以被相同包下的其他类使用。

子类访问权限(protected)

如果一个成员(包括属性、方法和构造方法等)使用protected访问控制符修饰,那么这个成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。

在通常情况下,如果使用protected来修饰一个方法,通常是希望其子类来重写这个方法。

公共访问权限(public)

这是一个最宽松的访问控制级别,如果一个成员(包括属性、方法和构造方法等)或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否具有父子继承关系。

类属性不建议public访问权限,因为任何类都可以直接修改变量的值,正确性无法保证。

public方法的主要用途是为其他类提供服务,其他类只需使用public方法,不必关心方法的实现细节。

图1和图2形象说明了访问权限。

图1 同一个包中的3个类

图2 位于不同包中的3个类

标签: #java中什么是访问控制符 #java中访问权限从大到小怎么设置 #java中默认访问权限 #java的权限控制