• 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修饰的)成员,即静态成员不能直接访问非静态成员。

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

  • 相关阅读:
    2017微软秋招A题
    UVA 494 Kindergarten Counting Game
    loss function与cost function
    coderforces 721b
    coderforces719b
    PyQt4打包exe文件
    PyQt4 UI设计和调用 使用eric6
    PyQt4 进度条和日历 代码
    PyQt4 颜色选择,字体选择代码
    PyQt4调用UI文件
  • 原文地址:https://www.cnblogs.com/xzxl/p/10906705.html
Copyright © 2020-2023  润新知