类变量(静态变量)

static变量是同一个类所有对象共享

static类变量在类加载的时候就生成了,不创建对象也可以访问

  • 什么是类变量
    类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
  • 如何定义类变量
    访问修饰符 static 数据类型 变量名;(推荐)
    static 访问修饰符 数据类型 变量名;
  • 如何访问类变量
  1. 类名.变量名(推荐)
  2. 对象名.类变量名(静态变量的访问修饰符权限、范围和普通属性一样)
  • 什么时候使用类变量
    当我们需要让某个类的所有对象都共享一个变量时,可以使用类变量
  • 类变量与实例变量(普通属性)的区别
    类变量是该类的所有对象共享的,而实例变量是每个对象共享的
  • 加上static称为类变量或静态变量,否则称为实例变量/普通变量/非静态变量
  • 实例变量不能通过类名.变量名来访问
  • 类变量的生命周期是随类的加载开始,随着类消亡而销毁

小问题

什么是多态?多态的具体体现有哪些?

多态:方法或对象具有多种形态,是OOP的第三大特征,是建立在封装和继承基础之上

多态具体体现:

  1. 方法多态
  • 重载体现多态
  • 重写体现多态
  1. 对象多态
  • 对象的编译类型和运行类型可以不一致,编译类型在定义时就已经确定,不能变化
  • 对象的运行类型是可以变化的,可以通过getClass()来查看运行类型

java 的动态绑定机制是什么?

  1. 当调用对象的方法时,该方法会和对象的内存地址/运行类型绑定
  2. 当调用对象的属性时,没有动态绑定机制,哪里声明哪里使用