java中一样的代码,为什么运行结果不一样?

为什么会是3两个代码不是一样的吗,为什么运行结果不一样呢... 为什么会是3 两个代码不是一样的吗,为什么运行结果不一样呢 展开
 我来答
澈丶233
2020-11-09 · TA获得超过169个赞
知道小有建树答主
回答量:446
采纳率:94%
帮助的人:103万
展开全部
图一第11行,for循环中的i使用的是静态成员变量。
图二第7行,for循环中的i使用的是局部变量。
静态成员变量我个人理解是类的一个固有属性,一般只有常量才会定义成静态成员变量,定义为变量就会发生图一的情况:类的实例1和实例2都操作了静态成员变量i,导致实例2在取i的初始值时,收到了实例1的影响。
而图二中因为for循环使用的是局部变量i,类的静态成员变量i的值没有收到for循环的影响。至于为啥实例2的t2.i变成了61,是因为第22行有个t1.i++的操作,使静态成员变量的值加了1。
所以除非是定义常量或者静态方法,一般不要使用static修饰符
你还可以试下i去掉static修饰符,运行结果可能又不一样了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式