static关键字详讲

static关键字详讲


  1. static内容方面

    1. static变量
    2. static方法
    3. static类
  2. static方法方面

    1. 访问
    2. 覆盖(override)
    3. 调用this,super

    static变量和static方法表明该变量或者该方法属于类,而并非属于某一对象,可以在没有实例对象的时候被访问,同时static变量和方法是编译的时候静态绑定的,方法覆盖(override)是运行的时候动态绑定的,因此static方法是不能够被覆盖的

2.1 访问
在static方法中不能访问类内非static变量和非static方法(不可以在static环境中访问非static变量)
在类中静态成员变量也叫做类变量,静态成员方法也叫做类方法,无论该类生成多少个对象,静态成员变量和方法在内存中只存在一份。
对于静态成员变量而言,我们可以用类名来访问该static变量,也可以在其他非静态成员方法中像访问其他非静态成员变量那样来访问。
对于静态成员方法而言,在类内,非静态成员方法可以直接访问静态成员方法,在类外,既可以使用类名.方法名,同样也可以使用对象名.方法名
因为static是类的层面,在JVM完成类的加载之后static环境就创建好了,然而这个时候非static变量还没有创建出来,非static变量需要与对象绑定在一起,因此不能再static环境中访问非static变量,防止出现未在内存中创建就被使用的情况发生
2.2 this与super
首先要明确一点,this代指的是当前对象,使用this相当于当前对象的引用,但是static中可以脱离对象存在,因此不能再static中使用this,如果调用static的是类而不是对象,那么在static方法中出现的this或者super都不存在该对象的引用,因此不能在static中出现this或者super

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值