1个回答
展开全部
静态方法不可以调非静态全局变量,从内存的角度看,就是当类被加载的时候静态方法和静态属性(全局静态变量)被加载到内存中,就是在内存中开辟一段内存地址用来保存静态方法和静态属性,这时候没有被实例化的类在内存中是不存在的,所以静态方法是不能访问非静态的全局变量。在类被实例化的时候,就是new 某个类的时候,在内存中给这个类开辟一些内存空间保存这个类的对象,这个时候就可以用静态方法去访问非静态的全部变量。
追问
当类被实例化的时候,也就是拥有自己的对像的时候,是不是用自己的这个对像在静态方法里,去调用非静态方法或者属性。这个时候就不是直接调用了,对吗?
追答
类在main函数被实例化的时候,已经在内存里开辟空间保存这个类对象了,静态方法就可以调用了。
说白里你在main函数了实例化了对象,对象其实就是该函数的局部变量了。方法的局部变量,当然能访问。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询