【java】【知识巩固】权限修饰符default private protected public

  1. 思考一个问题:为什么需要权限修饰符?
    1. 语言设计层面
      1.1 java是纯面向对象语言
      语法中不能在类外面定义单独的数据和函数 ,内部类除外(一种较为高级的用法)。代码的角度来看,访问数据和函数一般有两种形式:(1)[类名].[方法] / [类名].[变量] (2)[对象].[方法] / [对象].[变量] , 当然这里的变量是静态变量或者是常量,不是讨论的重点。能确定的是,一个类去访问一个类不能都直接访问其方法,而需要用到类名或者是类的对象。所以类和类、方法、变量的通讯必须要给他们一个权限的设置(没有修饰符的默认是完成default的权限修饰),不然维护所有变量成本是巨大的。
      类、对象、方法、变量简易代码

    2. 项目的组织形式
      项目 -》 … -》包 -》类
      这样看来,用包的视图来看,不同的类之间就有两种关系。第一种:类A和类B在同一个包内。第二种:类A和类B不在同一个包内。
      设想:
      2.1 要如何初步控制不同包之间类的通信?
      最简单的就是给类一个权限,定义类的被访问权限。
      2.2为什么不做成访问者和被访问者的双向权限呢?
      就好比交通事故追尾,后方车辆负全责。一是保持安全距离交规是硬规定,二是减少两车主定责上的诸多原因

      于是乎, 类的权限就出现了两种权限修饰符 public 和 default(不加public就默认为default)。 public 是可以给同包的类和不同包的类访问。default是只能给同个包的类访问。

  • 具体的权限修饰符: default private protected public

    1. 修饰的对象
      1.1 (外部)类 - 两种 (public default)
      1.2 类中封装的变量、常量、方法、内部类 (public default protected private)

对应访问权限:图片为转载

图片摘至:https://www.cnblogs.com/chuijingjing/p/9461165.html

猜你喜欢

转载自blog.csdn.net/chenghan_yang/article/details/86567411