• 修饰符的探讨


    一. 关于类中组成部分的名字

    非静态变量:又称为成员变量,实例变量

    静态变量:又称为静态成员变量,类变量

    非静态方法:又称为成员方法,实例方法

    静态方法:又称为静态成员方法

    对于静态变量与静态方法来说,它是属于这个类的范围的。对于非静态变量与方法,它是属于实例范围的。

    二.类中的修饰符

    1.无修饰符

    java中,当一个源文件有多个类的时候,只允许有一个public类,其余的类不能有public

    2.类的可见性

    类的访问控制符       对同个源文件的类可见                         对同个包的类可见                 对不同包的类可见                      
    public
    默认修饰符 ×

    3.finnal修饰符

    当一个类不能被继承时,用finnal修饰符修饰

    三.方法的访问控制符

    public:没有使用限制

    默认(无):只能被同一个包内的类使用

    protected:只能被子类使用

    private:只能在本类中使用

    finnal关键字不允许方法被覆盖

    关于静态方法的理解:

    static的理解:

    static关键字可以用来修饰方法和变量。如果一个变量使用static变量修饰,那么这个变量就是类范围内的一个属性,叫做类变量(静态变量)类中的所有对象都共享这个属性,创建对象后不会创建被static修饰的变量,static +类型名+变量名。

    当方法被static修饰时:

    >>和使用static修饰的变量一样,static修饰的方法可以通过类名直接调用

    >>类方法中不能用this关键字,不能使用非静态变量与非静态方法

    >>类方法内可以调用类方法和使用类变量

    >>没有被static修饰的方法可以调用类方法

    所以静态方法是没有动态特性的,对比多态。

    四.变量的修饰符

     访问控制符  对所在类可见  对同个包的类可见  对子类可见  对不在同个包中的类可见
     public  √  √  √  √
     protected  √  √  √  ×
     默认  √  √  ×  ×
     private  √  ×  ×  ×

     变量的覆盖:如果子类从超类继承了一个变量,而同时子类的本身也定义了一个类型与变量名相同的成员变量,那么子类的变量将覆盖超类的变量

    finnal关键字:1.必须在创建变量时给它赋值  2.变量的值不可被改变
  • 相关阅读:
    编译Openmv固件&增加串口
    边缘 AI 平台的比较
    CVPR2021 | 重新思考BatchNorm中的Batch
    ICCV2021 |重新思考人群中的计数和定位:一个纯粹基于点的框架
    ICCV2021 | 重新思考视觉transformers的空间维度
    CVPR2021 | Transformer用于End-to-End视频实例分割
    漫谈CUDA优化
    AAAI 2021 最佳论文公布
    综述专栏 | 姿态估计综述
    为什么GEMM是深度学习的核心
  • 原文地址:https://www.cnblogs.com/xiaolei-meow/p/6535144.html
Copyright © 2020-2023  润新知