zoukankan      html  css  js  c++  java
  • JAVA-访问权限控制

    以前对于public、private、protect、default,都只是简单的知道其对应的访问权限范围,现在看了think in java中的描述,讲了这几种访问权限在什么场景下使用,觉得进一步的了解的它存在的意义和合理性。

    因为在我们的日常开发中,常常会创建一些自己常用的工具类或者相应的类库,这个时候,权限控制标识符可以使我们更好的组织和维护工具类库,以及给客户端(在这里指工具类库的调用方)对工具类库的调用更加的友好,透明。

    default(friendly):即默认的包访问权限

      在 java 中,如果没有设定方法或者域的访问权限,那么他默认的访问范围,就是当前包,即当前包下的其他的类,都可以访问。

      调用方式:通过类实例(静态方法通过类调用)调用。

    public:公开的访问权限,也称接口访问权限。

      对于所有的对象都可以访问,通常修复需要被外部调用的方法,即我们需要向外部暴露的接口。

      调用方式:通过类实例(静态方法通过类调用)调用。

    private:私有的访问权限;只有包含该对象的类,才有访问权限。

      对于不想暴露给外部的的方法,那么,我们就可以使用 private,常常修饰 那些 服务于 暴露的外部接口的 方法,及被那些接口调用,这样,我们就可以随意的修改这个方法中的实现,而不用担心会影响到 调用方。

      调用方式:在包含类中直接调用

    protect:受保护的访问权限,又称继承访问权限

      通常是父类授权给子类访问,即只有派生了父类的子类才可以访问,所以它叫继承访问权限,即必须继承,才可以访问。

      调用方式:在派生类中直接调用。

    java编程思想中,建议我们在类的权限控制编写顺序如下:

      1.public、2、protect、3、default、4、private

    在阅读的时候,这种方式显得更合理、更容易。

    注意:这个方式不是强制性的,是建议性的!!!^_^

    -------------------------------------------------------------------------------------------------------------------------------

    以上讲的都是类内部的权限控制,那么对于类的本身的权限控制又是怎样的呢?继续往下看。

    在 Java 中,访问权限修饰词也可以修饰类。使用方法:将修饰词 置于 class 前边即可。

    类的修饰符只有 public包访问权限,它不可以是 private 和 protect (内部类除外)。

    类的定义的限定:

      1)每个 java  文件只能有一个 public class

      2)public class 的名称和 java 文件的名称必须保持一致。

      3)java 文件中 可以没有 public 修饰的 class,这个时候会有一个默认的权限,即包访问权限,此时文件的名称就没有限定。(这种方式降低代码的可读性可维护性

    ------------------------------------------------------------------------------------------------------------------------------

    到此,权限控制的东东就讲得差不多了,那么为什么会产生这个东西呢?相信你看了上边得介绍,就会得出如下两个原因:

      1)为了使 类调用方 不要访问到他们不该访问得内容,对于 类调用方 而言,他们就是一种服务。

      2)为了让 类库设计者 可以更改 类的内部实现,而不必去担心会 影响类的调用方

    Read the fucking manual and source code
  • 相关阅读:
    第五周总结
    第四周总结
    第三周总结
    开课博客
    学习进度
    个人作业1-数组
    数组
    第一周考试总结
    团队个人冲刺第六天
    团队个人冲刺第五天
  • 原文地址:https://www.cnblogs.com/qxynotebook/p/7256263.html
Copyright © 2011-2022 走看看