i请问为什么一个成员变量加static就可以被方法直接访问了?
6个回答
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
关键问题不在直接访问上,而在于程序中到底保存了多少个这个变量的副本:
1. 如果是非static成员,那么类的每一个对象都会保存一份副本,这些副本相互独立。
2. 如果加了static,那么就变成了类变量,也就是说跟类本身,而不是类的对象绑定在一起,这样的话,整个程序中就只有一个副本。这样其实是不好的,因为任意一个类的对象,都可以对这个副本进行修改,违背了数据封装的原则,所以,一般static关键字都是和final关键字一起使用的,这样能够保证整个程序的运行过程中不会对他进行修改,而只是读取这个值,这样就不会违背数据封装的原则了。
同学,你是在复习是吧==!
1. 如果是非static成员,那么类的每一个对象都会保存一份副本,这些副本相互独立。
2. 如果加了static,那么就变成了类变量,也就是说跟类本身,而不是类的对象绑定在一起,这样的话,整个程序中就只有一个副本。这样其实是不好的,因为任意一个类的对象,都可以对这个副本进行修改,违背了数据封装的原则,所以,一般static关键字都是和final关键字一起使用的,这样能够保证整个程序的运行过程中不会对他进行修改,而只是读取这个值,这样就不会违背数据封装的原则了。
同学,你是在复习是吧==!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果在同一个类中,这个方法要访问内部的成员变量,不用加static可以直接访问,如果给成员变量加了static修饰,这个变量就会变成类变量,可以通过 "类.变量名" 的形式直接访问
追问
请问直接访问就是指通过 "类.变量名" 的形式的意思??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加了static表示是静态的,在程序运行时自动初始化,不用你手动操作,所以可以直接访问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static方法可以直接访问static变量,但是是static方法不能访问非static变量或者方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询