4. static修饰符

一、static修饰符概述

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

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

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

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

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

二、调用static成员

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

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

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

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

原因与this有关。

猜你喜欢

转载自www.cnblogs.com/xzxl/p/10906705.html