• 4. static修饰符


    一、static修饰符概述

    1. static修饰的成员表明它属于这个类本身,而不属于该类的单个实例

    • 把static修饰的成员变量和方法称为类变量、类方法

    2. 不使用static修饰的成员则属于该类的单个实例,而不属于该类

    • 把不使用static修饰的成员变量和方法称为实例变量、实例方法

    笔记:static的真正作用就是区分成员变量、方法、内部类、初始化块这四种成员到底属于类本身还是属于实例

    二、调用static成员

    1. 不使用static修饰的成员,只可通过实例来调用

    2. static修饰的成员,既可通过类来调用,也可通过实例来调用,但应尽量使用类来调用static成员

    • static修饰的成员属于类本身(而不属于该类的实例),那么就不应该允许使用实例来调用static成员(实际上允许)
    • 使用该类的任何实例来调用同一个static成员都将得到相同的执行结果,这是因为static成员属于类本身,那么底层依然是使用这些实例所属的类作为调用者
    • 如果看到使用实例来调用static成员的情形,则完全可以把这种用法当成假象,将其替换成用类来调用static成员的代码

    三、静态成员不能直接访问非静态成员

      静态方法中不能使用this,因为静态方法是由类来调用的,所以在静态方法中,this将无法指向合适的对象。所以静态方法不能访问非静态(不使用static修饰的)成员,即静态成员不能直接访问非静态成员。

      类成员(包括方法、初始化块、内部类和枚举类)不能访问实例成员(包括成员变量、方法、、初始化块、内部类和枚举类),因为类成员是属于类的,类成员的作用域比实例成员的作用域更大,完全可能出现类成员已经初始化,但实例成员还不曾初始化的情况,如果允许类成员访问实例成员将会引起大量错误。

  • 相关阅读:
    Symbol
    对象的附加属性
    怪异盒模型
    javascript的三大组成部分
    让目标对象滚动到视口位置
    隐藏单个盒子的滚动条
    uni-app判断有没有安装这个app,如果有的话直接打开,没有的话跳转到下载页面
    js 读取json文件
    openlays 使用 svg标注,动态修改svg颜色
    iview table组件内容过多用“...”代替,鼠标悬停显示全部内容
  • 原文地址:https://www.cnblogs.com/xzxl/p/10906705.html
Copyright © 2020-2023  润新知