Java中的访问控制权限可以分为4级,分别是public,protected,default,private。放一张看了很多遍却不一定记住的图。
图中打Yes即表示可以访问,举例说在同一个类中,不管你用什么样的访问修饰符修饰属性或方法,我都可以访问。而在子类中,只能访问父类中被protected,public,所修饰的属性或方法。
如果一个成员方法或成员变量或内部类名前使用了private访问控制符,那么这个成员只能在这个类的内部使用。只有当前类可以访问。
protected访问控制权限,这是一个修饰父类的访问控制权限,如果父类和子类不属于同一个包,想要继承父类拥有的成员但又不想设置为public访问权限则可以设置为protected访问权限,这就是保护父类成员的用法,主要为继承服务。
default的访问控制权限,即不添加访问修饰符的时候,表示同一个包中可访问。包的概念类似于我们说的命名空间的概念,使用关键字package可以指定一个包,在物理层面显示就是一层层的目录结构。包的定义有助于模块化编程,在一个包中我可以只开放一个公共的接口以供使用。这样就极大程度保护了包中实现的隐蔽性,可以秘密的实现功能,而调用者无需知道如何实现!
如果一个成员方法或成员变量名前使用了public访问控制符,那么这个成员可以被所有的类访问,不管访问类与被访问类是否在同一个包中。
以上就是对访问控制权限的说明。那么为什么需要访问控制权限?访问控制权限,其实就是对你调用行为的限定。具体到Java中,一是为了使用户触碰不到那些他们不该触碰的部分,这些部分对于类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分。二是为了让类库设计者可用更改类的内部工作方式,而不必担心会对用户造成重大影响。当然,这些访问控制符也是Java中实现封装的前提。
希望对大家有所帮助,如有疑问,请登录官网,有专业老师随时为你服务。
更多免费学习资料欢迎添加微信:ZZ19137181462
动力节点官网地址:http://www.bjpowernode.com/