Java中的访问控制权限

Java 中是如何对访问权限进行控制的 ?

Java 中的访问控制权限可以分为 4 级 ,分别是 public ,protected ,default ,private 。放一张看了很多遍却不一定记住的图 。

 

 

图中打 Yes 即表示可以访问 ,举例说在同一个类中 ,不管你用什么样的访问修饰符修饰属性或方法 ,我都可以访问 。而在子类中 ,只能访问父类中被protected ,public ,所修饰的属性或方法 。

如果一个成员方法或成员变量或内部类名前使用了 private 访问控制符 ,那么这个成员只能在这个类的内部使用 。只有当前类可以访问 。

protected 访问控制权限 ,这是一个修饰父类的访问控制权限 ,如果父类和子类不属于同一个包 ,想要继承父类拥有的成员但又不想设置为 public 访问权限则可以设置为 protected 访问权限 ,这就是保护父类成员的用法 ,主要为继承服务 。

default 的访问控制权限 ,即不添加访问修饰符的时候 ,表示同一个包中可访问 。包的概念类似于我们说的命名空间的概念 ,使用关键字 package 可以指定一个包 ,在物理层面显示就是一层层的目录结构 。包的定义有助于模块化编程 ,在一个包中我可以只开放一个公共的接口以供使用 。这样就极大程度保护了包中实现的隐蔽性 ,可以秘密的实现功能 ,而调用者无需知道如何实现 !

如果一个成员方法或成员变量名前使用了public 访问控制符 ,那么这个成员可以被所有的类访问 ,不管访问类与被访问类是否在同一个包中 。

以上就是对访问控制权限的说明 。那么为什么需要访问控制权限 ?访问控制权限 ,其实就是对你调用行为的限定 。具体到 Java 中 ,一是为了使用户触碰不到那些他们不该触碰的部分 ,这些部分对于类内部的操作是必要的 ,但是它并不属于客户端程序员所需接口的一部分 。二是为了让类库设计者可用更改类的内部工作方式 ,而不必担心会对用户造成重大影响 。当然 ,这些访问控制符也是 Java 中实现封装的前提 。

 

posted on 2018-08-10 10:40  非正经程序员  阅读(280)  评论(0编辑  收藏  举报

导航