2.2(1) Java复习之static关键字

文章目录


#static关键字
##static修饰变量
这里写图片描述
注明:

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

##static内存分析
这里写图片描述

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

##static修饰方法

这里写图片描述

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

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


#static关键字练习
使用静态的变量实现累加效果,因为静态变量在内存中独一份
##圆形类
这里写图片描述
这里写图片描述
这里写图片描述

  • total来为创建的对象计数
  • 静态方法只能调用静态变量和方法

##账户类
这里写图片描述
这里写图片描述
注明:
若init为非static,则每个对象的id均为1000

这里写图片描述
上述代码省略setter/getter方法


#数组回顾
回顾以往数组的方法构建

这里写图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值