java中访问控制修饰符的详解和示例

lanhy
发布于 2020-9-1 10:37
浏览
0收藏

Java中的四个访问控制修饰符
简述
在 Java 中共有四个:

public —— 对外部完全可见
protected —— 对本包和所有子类可见
默认(不需要修饰符)—— 对本包可见
private —— 仅对本类可见
从上到下,访问控制权限依次降低增加,pub­lic 的开放程度最高。java中访问控制修饰符的详解和示例-鸿蒙开发者社区

简言之就是,pub­lic 全开放,pro­tected 对本包和子类(不论是不是在本包中)开放,默认的只对本包开放(不论是不是子类),pri­vate 仅对本类开放(只有定义它的类内部才能够使用,非常不开放)。
建议在定义每个类的私有字段,也就是成员变量时使用 pri­vate 修饰符,这样才能够确保类的封装性。

实例演示
定义两个包:A 包和 B 包。
A 包中有类:aFa­ther 、aClass、aSon;B 包中有类:bClass、bSon
定义类:aSon、bSon 是 aFa­ther 的子类。具体如下

java中访问控制修饰符的详解和示例-鸿蒙开发者社区

包A
aFather.java
定义了一个父类 aFa­ther,和各实例字段,如下:

java中访问控制修饰符的详解和示例-鸿蒙开发者社区

aClass.java
aClass 为 A 包中的一个普通类。

java中访问控制修饰符的详解和示例-鸿蒙开发者社区

显然在同一包中,除了private ,都可以正常访问父类的Public、Protected 和默认定义的实例字段。 

aSon.java
aSon 为 A 包(同一包)中的 aFa­ther 类的子类java中访问控制修饰符的详解和示例-鸿蒙开发者社区

同样,同一包中的子类可以正常访问父类的Public、Protected、默认定义 的实例字段。 

包B
bClass.java
bClass 为 B 包中的一个普通类。

java中访问控制修饰符的详解和示例-鸿蒙开发者社区

可以看出,非aFather子类的类:bClass 只能访问A包中类的 Public 的实例字段。 

bSon.java
bSon 为 B 包中的,aFa­ther 类(A 包中)的子类。java中访问控制修饰符的详解和示例-鸿蒙开发者社区

而B包中的bSon类 是A包中aFather类的子类,可以访问父类(超类)中由Public、Protected定义的实例字段,其他的无法访问。 

由此看出,开头所说:

public —— 对外部完全可见
protected —— 对本包和所有子类可见
默认(不需要修饰符)—— 对本包可见
private —— 仅对本类可见
便更易于理解了!

分类
已于2020-9-2 18:13:19修改
收藏
回复
举报
回复
    相关推荐