java中访问控制修饰符什么含义_java中访问控制修饰符的详解和示例

Java中的四个访问控制修饰符

简述

在 Java 中共有四个:

public —— 对外部完全可见

protected —— 对本包和所有子类可见

默认(不需要修饰符)—— 对本包可见

private —— 仅对本类可见

从上到下,访问控制权限依次降低增加,pub­lic 的开放程度最高。

4a8132ff3495e5e108a3ca8deba7dde1.png

简言之就是,pub­lic 全开放,pro­tected 对本包和子类(不论是不是在本包中)开放,默认的只对本包开放(不论是不是子类),pri­vate 仅对本类开放(只有定义它的类内部才能够使用,非常不开放)。

建议在定义每个类的私有字段,也就是成员变量时使用 pri­vate 修饰符,这样才能够确保类的封装性。

实例演示

定义两个包:A 包和 B 包。

A 包中有类:aFa­ther 、aClass、aSon;B 包中有类:bClass、bSon

定义类:aSon、bSon 是 aFa­ther 的子类。具体如下

bd8e78bbd666da1b3ce0d2e4bdadeda4.png

包A

aFather.java

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

8209c04b99e5dd18a00319a6c6f02d33.png

aClass.java

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

274333890e73c3719e63ac6b3af5c278.png

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

aSon.java

aSon 为 A 包(同一包)中的 aFa­ther 类的子类

3b9ebad6ecec31fe84d574d2c97af303.png

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

包B

bClass.java

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

c14de5d80b4d34d9bd10c926bee267af.png

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

bSon.java

bSon 为 B 包中的,aFa­ther 类(A 包中)的子类。

2f05bf2c5de4fe7c5ddaaa28fe9dd3b7.png

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

由此看出,开头所说:

public —— 对外部完全可见

protected —— 对本包和所有子类可见

默认(不需要修饰符)—— 对本包可见

private —— 仅对本类可见

便更易于理解了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值