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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘源 中级黑马   /  2012-8-3 09:49  /  1442 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘源 于 2012-8-3 21:05 编辑


问题已经解决”。



class Value
{
public int i = 15;
}
public class Test
{
public static void main(String argv[])
{
          Test t = new Test();
t.first();
         }
public void first()
{
        int i = 5;
                Value v = new Value();
v.i = 25;
second(v, i);
     System.out.println(v.i);
}
public void second(Value v, int i)
{
i = 0;
                v.i = 20;
Value val = new Value();
                v =  val;
        System.out.println(v.i + " " + i);

}
}
打印结果是:15 0
                     20
这是为什么啊,有高手能帮我分析下吗?

2 个回复

倒序浏览
本帖最后由 郑正华 于 2012-8-3 10:44 编辑

package cn.itcast.demo;
class Value
{   
       public int i = 15;  
}  
public class EnumDemo  
{
          public static void main(String argv[])
         {
                    EnumDemo t = new EnumDemo();
                    t.first();                              ←1.实例化EnumDemo类并调用first方法!进入first方法!
          }
          public void first()
           {
                  int i = 5;
                 Value v = new Value();           
                 v.i = 25;                     ←2.实例化Value对象并将对象v的i值赋值为25.
                 second(v, i);                ←3.调用second方法,传递的参数是v对象和i值,此时i值为5.然后进入second方法!
                  System.out.println(v.i);   ←8.打印first方法中实例化的v对象的i值。这个i值在second方法中已经修改为20.
            }
              public void second(Value v, int i)
            {
                      i = 0;                  ←4.将0赋值给i,此时i=0,
                     v.i = 20;               ←5.将first方法中的v对象中的i值改为20.
                     Value val = new Value();         
                     v = val;                                   ←6.再次实例化Value类并将val对象的引用给了参数v.也就是说把原本first方法中的v对象给覆盖掉了,因为没做修改,所以此时v中的i值默认还是Value类中的i值,即v.i=15.注意这里的val对象和first方法中的v对象不一样)
                     System.out.println(v.i + "  " + i);   ←7.打印v.i值和i值。
              }
}

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!很详细,回答的很认真,坚持!.

查看全部评分

回复 使用道具 举报
郑正华 发表于 2012-8-3 10:37
package cn.itcast.demo;
class Value
{   

刘老师,你太好了!:'(  俺耐你!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马