为了账号安全,请及时绑定邮箱和手机立即绑定

我在书上看到一个实例,输出结果不太理解,求大家帮解释一下

源码:

http://img1.sycdn.imooc.com//5d5a925d0001c33707780521.jpg

http://img1.sycdn.imooc.com//5d5a92640001d7ab08160304.jpg

正在回答

5 回答

1、执行t1.i++后,虽然打印的是60,但是此时静态变量i=61

2、调用t1.call()在for循环中将i初始化为0,并在i=3时跳出循环,此时静态变量i=3,因此打印的t2.i=3

0 回复 有任何疑惑可以回复我~

这个我理解,为什么t1.i++执行后i值变为3

0 回复 有任何疑惑可以回复我~
#1

慕粉4284747

当i=3的时候,i<3不再满足,所以退出循环。但此时程序中i的值是3
2019-09-09 回复 有任何疑惑可以回复我~

重点是因为i是静态成员变量被所有对象所共享,第一次调用call()方法后,经过里面的for循环 i变为3 跳出循环,所以结果为3

0 回复 有任何疑惑可以回复我~

提问者补充:就是第二个实例对象调用变量i的结果为什么是3,求

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530026    人
  • 解答问题       6086    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

我在书上看到一个实例,输出结果不太理解,求大家帮解释一下

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信