zoukankan      html  css  js  c++  java
  • java中的权限修饰符的理解

    首先了解概念:

    在java中有四种权限修饰符:范围从大到小分别是:public、protect、default(friendly)、private,它们之间的区别是:

    • public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
    • protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
    • default:  这个访问权限可能是很多人容易所忽视的,即不写任何关键字。默认权限(同包权限)即:包内可访问,包外不可访问,不管是子类还是没有继承关系的类。
    • private:  只能在当前类中使用,外部不能访问。

    理解:什么是同包与不同包?

    这很好理解啊,假如把包看成文件夹,包里面的东西就是文件,在同一个文件夹里面文件的就是同包,看代码:

     1 package a:
     2 //function1声明在a包中
     3 public class function1{
     4    //声明的变量与方法;
     5 }
     6 package b;
     7 //function2声明在b包中
     8 public claass function2{
     9      //声明的变量与方法;
    10 }

    首先说同包,先看一个表(打勾的表示可以访问):

    作用域

       当前类

      子孙类

      外部类

    public

          √

         √

        √

    protected

          √

         √

        ×

    Default(friendly)

          √

         √

        √

    private

          √

         ×

        ×

     结论:在同一个包的前提下,在继承时,子类只能继承父类中的public、protected以及default访问权限的成员变量或方法,并且继承之后,这些成员变量或方法的访问权限和之前的一样,如父类中是public,继承后还是public。

    在不同包的情况下,看表:

    作用域

        当前类

      子孙类

       外部类

    public

          √

        √

         √

    protected

          √

        √

         ×

    Default(friendly)

          √

        ×

         ×

    private

          √

        ×

         ×

    结论:在不同包的前提下,在继承时,子类只继承父类中的publicprotected访问权限的成员变量或方法作为子类自己的成员变量或方法。

  • 相关阅读:
    [PyTorch]PyTorch中反卷积的用法
    [Pytorch]PyTorch Dataloader自定义数据读取
    [ACM]51nod 贪心专题
    上采样和PixelShuffle(转)
    反卷积(转置卷积)的理解
    [PyTorch]PyTorch中模型的参数初始化的几种方法(转)
    [OpenCV]OpenCV常用语法函数与坑点
    [PyTorch]PyTorch/python常用语法/常见坑点
    [Pytorch]PyTorch使用tensorboardX(转
    [Pytorch]Pytorch 保存模型与加载模型(转)
  • 原文地址:https://www.cnblogs.com/qq1871707128/p/6080189.html
Copyright © 2011-2022 走看看