• 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
  • 相关阅读:
    scratch少儿编程第一季——04、想要做到有的放矢,瞄准方向很重要
    scratch少儿编程第一季——02、scratch界面介绍
    scratch少儿编程第一季——01、初识图形化界面编程的神器
    Scratch—点亮生日蜡烛
    scratch少儿编程——03、动作:运动的开始,游戏的基础。
    画一个秘密花园 | Scratch 3.0 艺术项目
    scratch少儿编程第一季——01、初识图形化界面编程的神器
    scratch少儿编程第一季——02、scratch界面介绍
    mysql优化一之查询优化
    mysql优化二之锁机制
  • 原文地址:https://www.cnblogs.com/qxynotebook/p/7256263.html
Copyright © 2020-2023  润新知