Java:在一个方法内,成员变量和局部变量同名时,

,此时如果要访问实例变量可以用this,要访问静态变量可以通过类名。这是书上的话,我的疑问是:那此时访问静态变量可以用this吗,只能通过类名吗?... ,此时如果要访问实例变量可以用this,要访问静态变量可以通过类名。
这是书上的话,我的疑问是:那此时访问静态变量可以用this吗,只能通过类名吗?
展开
 我来答
GTA小鸡
高粉答主

2018-07-09 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
理论上来说,静态变量存在于类的方法区而不是对象中,没有this指针指向它,因此只能通过类名.变量名的形式访问。

但实际上使用this.变量名也可以通过编译。此时编译器自动替换为类名.变量名,并给出一个警告提示你应该以静态方式访问此变量。
粉红顽皮蛇tz
2018-07-09 · TA获得超过467个赞
知道小有建树答主
回答量:419
采纳率:85%
帮助的人:154万
展开全部
静态变量不需要实例化,也不能通过this引用。
this指当前对象的实例。而静态变量无需实例化就可以构建,使用。而且无论是否有实例,有多少个实例,静态对象都指向同一个。所以不会有this的引用。
不仅如此。在静态方法中也不能使用this。 有一个理解方式。所有非静态函数都有一个隐藏的参数,this,把对象传了过去。静态方法没有这个隐藏参数,所以不能用this。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hitzsf
2018-07-09 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1170万
展开全部
可以用this,不过编译器会有警告,静态变量是属于类的变量,用类名方法比较合适而已
我习惯写代码的时候,为了图方便,全部用对象名来引用,最后用编辑器统一修改下调用方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式