Day5static关键字

static 关键字的特点
1) 随着类的加载而加载
2)优先于对象(不依赖于对象的存在)
3)为类的所有成员所共享
4)可以通过类名访问
通过这个特点,我们也可以看出来静态变量和 非静态变量的区别,
static关键字的第一点特点表明了 静态变量和 普通成员变量的出现时间不同,非静态变量是在创建对象之后才存在的。第二点已经表明了静态变量已经不再依赖对象而存在了,说明他的所属已经改变成了类,所属不同。第三点表明了,静态变量已经不存在堆中的对象当中了,因为许多共享的东西都在方法区,而非静态变量存在堆中的对象中。说明了静态变量和非静态变量的内存存储位置不同。第四点表明了调用方式的不同。所以我们总结了一下
静态变量和非静态变量的区别
1)出现的时间不同
2)所属不同
3)在内存中存储位置的不同
4)调用方式的不同

static 关键字的注意事项:
1)静态方法不能访问当前对象的 非静态成员方法和变量。因为类加载的时候,静态方法就已经存在于方法区当中了,而非静态变量得实例化之后才存在堆的对象中,所以调用静态方法有可能访问不到非静态变量。而里面也不能访问非静态方法的原因也很简单,因为非静态方法是有可能访问非静态成员变量的,这样的话,相当于静态方法间接的访问了非静态成员变量
(这里有一点特别需要注意,静态方法不能访问的是当前对象的非静态成员,而不是不能访问非静态成员变量或方法,因为,静态方法可以访问别的对象的非静态成员变量和非静态方法,eg自己new一个出来访问)
2静态方法中不能有static关键字
按我的理解,static修饰的东西都是类加载的时候就已经加载到方法区中去了,假如static 声明一个静态变量的话,不是得程序调用的时候才开始声明吗,但执行static声明静态变量的时候,类加载早已经完成了,所以矛盾了。

关于static还有一些东西,后面再补坑吧。

在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值