A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邢义敏 中级黑马   /  2013-3-4 20:07  /  2310 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class AccessProperty {

  2. static int i = 47;

  3. public void call() {
  4. System.out.println("调用call方法");
  5. for (i = 0; i < 3; i++) {
  6. System.out.print(i + " ");
  7. if (i == 2)
  8. System.out.println("\n");
  9. }
  10. }

  11. public AccessProperty() {
  12. }

  13. /**
  14. * @param args
  15. */
  16. public static void main(String[] args) {
  17. // TODO Auto-generated method stub
  18. AccessProperty t1 = new AccessProperty();
  19. AccessProperty t2 = new AccessProperty();
  20. t2.i = 60;
  21. System.out.println("第一个实例对象调用i的结果" + t1.i++);
  22. t1.call();
  23. System.out.println("第二个实例对象调用i的结果" + t2.i);
  24. t2.call();
  25. }

  26. }
复制代码

运行后的结果为:
第一个实例对象调用i的结果60
调用call方法
0 1 2
第二个实例对象调用i的结果3
调用call方法
0 1 2
第一个实例对象调用i的结果是60,此时i=61,调用了t1.call();后不应该是2么,为什么第二个实例对象调用i的结果会是3?


好吧,我脑子短路了,忽然想起来是怎么回事了。

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

7 个回复

正序浏览
就是点击你所发帖子下面的编辑,
然后在选择主题分类选项 里面选择已解决 这一项,然后保存,就可以了
回复 使用道具 举报
邢义敏 发表于 2013-3-4 21:36
首先我要说哥们,我是女的;其次,我要谢谢你的讲解;最后我要告诉你一个不幸的消息,我帖子发了后我就已 ...

问你个操作性的问题,怎么把自己提的问题改成已解决啊!??
回复 使用道具 举报
邢义敏 发表于 2013-3-4 22:11
木关系~~木关系,我还要谢谢你滴回答捏~~~~~~~

嘿嘿  我脑袋也很容易短路 学习就是需要互相探讨和帮助的嘛   
回复 使用道具 举报
罗威 发表于 2013-3-4 22:06
额  我没看性别~ 不好意思啊! 别见怪啊!!

木关系~~木关系,我还要谢谢你滴回答捏~~~~~~~
回复 使用道具 举报
邢义敏 发表于 2013-3-4 21:36
首先我要说哥们,我是女的;其次,我要谢谢你的讲解;最后我要告诉你一个不幸的消息,我帖子发了后我就已 ...

额  我没看性别~ 不好意思啊! 别见怪啊!!   
回复 使用道具 举报
罗威 发表于 2013-3-4 20:59
哥们,当t1.call();的时候就开始循环,当i=3的时候虽然没能进入循环体,但是 i  的值已经改变成3了 啊,所 ...

首先我要说哥们,我是女的;其次,我要谢谢你的讲解;最后我要告诉你一个不幸的消息,我帖子发了后我就已经想起来是怎么回事了。所以我给改成已解决了……不过还是要谢谢你的帮助!!^_^
回复 使用道具 举报
哥们,当t1.call();的时候就开始循环,当i=3的时候虽然没能进入循环体,但是 i  的值已经改变成3了 啊,所以当你对象调用的时候 i 是3啊

for(int x =0;x<3;x++){执行语句;}当运行完一次执行语句,就先将x值加1,然后才去和3比啊 ,true就再循环,false就退出循环,可你是否进入循环体i的值都已经变成3了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马