脚本宝典收集整理的这篇文章主要介绍了

Java那些事(一)——访问级别修饰符

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

老夫的gayhub
老夫的主页
谢谢阅读

Java那点事-访问级别修饰符

注:本文讨论的所有情况没有考虑嵌套类。

Java的访问级别修饰符(Access Level Modifiers)有四种,按照可访问范围的大小排列,如下表所示(虽然官方文档也有,但是老夫知道泥萌是不会去看的_(:з)∠)_):
表格的横行列举的是四个访问范围。

修饰符 中文含义 类(class 包(package 子类(subclass 所有类(world)
public 公有
protected 保护 ×
缺省 × ×
private 私有 × × ×

注1:缺省情况,在oracle官方文档里也被叫做package-private,我们可以理解为包-私有。
注2:为何所有类不用All Class,因为文档里就是这么写的= ̄ω ̄=。

老夫简单的介绍publicprivatepackage-private这三种情况,重点介绍protected

  • public这种访问级别是范围最大的,当泥萌使用该修饰符修饰类的成员的时候,代表该成员可以被所有类访问,即整个项目下都是可以访问的。
  • private与public恰好相反,它是整个访问级别中范围最小的,使用它修饰类的成员的时候,该成员只能够被该类内部访问,外部是无法访问到的。
  • package-private这种情况,在泥萌没有使用其他三种访问级别时生效。该修饰符所控制的范围最大是同一个包,也就是说,被修饰的成员在只需同一个包下即可被访问。
  • protected这种访问级别比较特殊,因为它还包含了子类也可以访问的这种情况,子类这种情况分为两种,一种是在同一个包下的子类,另一种是在不同包下的子类,这两种情况,访问被protected修饰的成员方式是不同的(这是本文今天的重点)。

直接来看代码,一目了然,代码清单如下:

项目部分包的目录结构
clipboard.png

parent.java

package com.smallclover.pack1;  public class Parent {     protected void parent() {              } } 

Child.java(与父类在同一个包下)

package com.smallclover.pack1;   public class Child extends Parent{     public void child() {         Parent p = new Parent();         p.parent();//通过父类来访问         Child c = new Child();         c.parent();//通过子类来访问     } } 

Child.java(与父类在不同包下)

package com.smallclover.pack2;  import com.smallclover.pack1.Parent;  public class Child extends Parent{     public void child() {         Child c = new Child();         c.parent();//只能通过子类来访问     } } 

未完待续(~o( =∩ω∩= )m)

参考文档:https://docs.oracle.com/javas...

总结

以上是脚本宝典为你收集整理的

Java那些事(一)——访问级别修饰符

全部内容,希望文章能够帮你解决

Java那些事(一)——访问级别修饰符

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过