善倾的知识体系构建之路

访问控制权限

2018-09-21  本文已影响0人  善倾

Java 有四个访问权限修饰符,分别是public protected default private。这些修饰符用来修饰类、属性和方法,一共也就这三种情况。建议在阅读以下内容时,配合 IDE 工具的智能提示进行验证。

疑问:为什么要有访问控制权限这种东西,它能用来干嘛?给个保证安全性的解释就完了???难道这样解释还不够吗?

用来修饰类

用来修饰属性

这里讲的是实例属性,实例属性只能通过对象引用才能够使用。

用来修饰方法

这里讲的是实例方法,实例方法只能通过对象引用才能够使用。

总结:

实例属性、实例方法都是依赖于具体对象的,所以不能脱离对象来谈访问权限。Java 中任何代码都是在类中的,所以也不能脱离类来谈访问权限。因此,在谈论访问权限的过程中,首先要明确是在哪个类中,其次要明确这是通过类对象的引用来使用的方法或属性。

包真的是一个分水岭啊。同一个包下无论是 protected 还是 default 都可以通过类对象的引用访问属性和方法,但是在不同的包下是不可能访问得到的。而且,对于继承也是如此,同一个包下子类可以通过 this 就能够访问到protected 和 default 修饰的属性和方法,但是在不同包下,子类只能访问到 protected 修饰的属性和方法,default 修饰的也不行。

public 和 private 都没有问题,很清晰明了。唯独 protected 和 default 修饰的属性和方法有点绕,以前好像一直没深究过这个问题,这块都不清楚。这次弄清楚了,也不知道什么时候会忘记,什么时候又能够用得上呢。

正常情况下,大部分都是采用 public 和 private 配合使用,default 和 protected 用的好像并不多诶,以后慢慢积累它的使用场景。

上一篇 下一篇

猜你喜欢

热点阅读