static关键字拾遗

  1. 只想为特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象
  2. 希望某个方法不与包含他的类的任何对象关联在一起。也就是说没有创建对象也能调用这个方法

也就是说当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。所以即使从未创建某个类的任何对象,也可以调用其static方法或访问其static域。
如下图所示:StaticTest类定义了两个属性,一个是static的一个是普通的
在这里插入图片描述然后我们在外部进行调用「注意:此时并未创建StaticTest类的对象」
在这里插入图片描述

可以看到,只能调用static且public下的属性。
当实例化对象后:
在这里插入图片描述

又是新的一翻景象!
通常,必须创建一个对象,并用它来访问数据或方法,因为非static域和方法必须知道和他们一起运作的对象。


如下图所示,即使创建了两个StaticTest对象,staticTest类的static属性name_pub也是共用了同一份内存空间!
在这里插入图片描述
在这里插入图片描述


尽管当static作用于某个字段时,肯定会改变数据创建的方式,因为一个static字段对于每个类来说都只有一份内存空间,而非static字段则对每个对象有一个存储空间。但是如果static作用于一个方法时和普通方法的区别并不大。static方法的一个重要用法是在不创建任何对象的前提下就可以调用它。这一点对于main方法很重要!public ststic void main很熟悉吧!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值