static关键字

static修饰变量

2.2 Java复习之static关键字
注明:

  • static不能修饰构造器,构造器的生命周期视作一般方法
  • 实例变量随对象而转移,每个对象都有一套实例变量
  • 类变量各对象公用

static内存分析

2.2 Java复习之static关键字

  • name简化内存空间(参照2.0的String内存空间分析),实际初始为null,然后赋与 地址,指向常量池某空间
  • 静态域:存放静态变量
  • 静态变量的创建早于对象,随类的创建而创建
  • 实例变量只能通过类的对象调用,即创建了类的对象,才创建实例变量
  • 类变量可通过类调用,也可通过对象调用

static修饰方法

2.2 Java复习之static关键字

  • 类比类变量,类方法(静态方法)既可通过类调用,也可通过对象调用
  • 非静态方法则只能通过对象调用
  • 静态方法不能调用非静态变量(创建有先后,先有类,即有类变量和类方法,
    后有对象,才有类对象的变量和方法,父亲都没有,哪来儿子)
    2.2 Java复习之static关键字
    • 不存在this或super的原因是类变量或方法早于当前对象或父类对象(本质是对象)而创建,先来后到的问题
    • 本例子也说明静态方法不能调用非静态方法(show1()默认this.show1() )

总结:先来后到,先创建的能调用后创建的


static关键字练习

使用静态的变量实现累加效果,因为静态变量在内存中独一份

圆形类

2.2 Java复习之static关键字
2.2 Java复习之static关键字
2.2 Java复习之static关键字
- total来为创建的对象计数
- 静态方法只能调用静态变量和方法

账户类

2.2 Java复习之static关键字
2.2 Java复习之static关键字
注明:
若init为非static,则每个对象的id均为1000

2.2 Java复习之static关键字
上述代码省略setter/getter方法


数组回顾

回顾以往数组的方法构建

2.2 Java复习之static关键字

直接用类调用静态方法的形式(数组的这些方法非每个类独有,而是数组公有)
所以将方法声明为static

相关文章:

  • 2021-11-19
  • 2021-08-06
  • 2021-06-23
  • 2021-07-15
  • 2021-09-12
  • 2021-05-12
猜你喜欢
  • 2021-07-23
  • 2022-02-23
  • 2022-12-23
  • 2021-10-03
  • 2021-09-25
  • 2021-09-11
相关资源
相似解决方案