【Java】学习日记 Day23

image-20220702163210840

作者|Rickyの水果摊

时间|2022年9月14日


💡 今日知识点总结

访问修饰符(Access Modifier)

1.1 访问修饰符的基础概念

Java 中的 成员变量/属性 有 4 种 访问修饰符,分别是 publicprotecteddefault(无需添加)private

不同的访问修饰符为 属性 设置了不同的 访问级别(Access Level),具体情况如下表:

访问修饰符同类同包子类不同包
public
protected
default
private

如果把上表看成一个 A 4 ∗ 4 A_{4*4} A44 的类上三角矩阵,其实还是很好记忆的。但是每次都把这个表格列出来,会有一点麻烦,博主想在此分享一些记忆方式,如果各位朋友有好的记忆方式,也欢迎在评论区内分享。

首先,我们可以把这 4 个访问修饰分为两类,publicprivate 以及 protecteddefault

前一类其实非常好记:由 public 修饰的属性可以被任何地方使用,而由 private 修饰的属性只能被同一个类中的成员方法使用。

关键是区分后一类, protecteddefault

  1. 从表格上来看,两者的区别是 能否被子类访问,能被不同包下子类访问的,是 protected ,不能被 不同包下子类访问的,则是 default

    博主在网上看到一个用于记忆的例子,感觉还不错,是这样的:我们的钱(money)是受到保护的(protected),但是我们的子女可以使用我们的钱,所以 protected 修饰的属性是可以被子类访问的。

  2. 两者与 public 相比,它们均 不能不同包下 的其他类访问。

  3. 两者与 private 相比,它们均 可以同包下 的其他类访问。

1.2 访问修饰符编程实例

首先,我们创建两个包,modifier.packonemodifier.packtwo 。在 packone 中创建 A、B 类,在 packtwo 中创建 Test 类。

1.验证 private 访问修饰符:在 A 类中设置 4 个不同修饰符的属性,在 A 类中编写一个成员方法,可以看到 4 个属性均可被访问。

image-20220914172240337

然后在 modifier-packone(与 A 类同包)中,创建 B 类,编写测试代码,查看 4 个属性的访问权限。可以看到,同包的 B 类不能访问 private 修饰的 n4,另外 3 个均可访问。

image-20220914172921318

2.验证 public 访问修饰符:在 modifier-packtwo-Test(与 A 类不同包)中,编写测试代码,查看 A 类中的 4 个属性。可以看到,仅有 public 修饰的 n1 允许被访问,而另外 3 个属性,不同包下的 Test 类无法访问。

image-20220914171832875

3.验证 protecteddefault 访问修饰符:该内容将在学习 继承 的有关知识后补充。


✏️ 今日随记

学习 Java 的 第 23 天。⏰

今天主要整理了Java 中「访问修饰符」的相关内容,需要记忆和理解的东西较多,是一个小重点。

在这之后,面向对象三巨头「封装」、「继承」、「多态」将正式登场,博主也会尽力把这部分内容做好,争取用较高的质量进行总结。

今天的学习日记就到此结束了,愿与诸位朋友共勉。✊

今日摘录:

Sunset is drowning in the orange sea, the evening wind is falling in love

落日沉溺于橘色的海,晚风沦陷于赤诚的爱


相关博客

【Java】学习日记 Day22

【Java】学习日记 Day21

【Java】学习日记 Day20

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值