当前位置:  技术问答>java相关

一道JAVA认证考试试题,有点想不通,各位看看...

    来源: 互联网  发布时间:2015-04-05

    本文导语:  题目如下: class ValHold{     public int i = 10; } public class ObParm {     public static void main(String argv[])     {         ObParm o = new ObParm();         o.amethod();     }          public void amethod()     { ...

题目如下:

class ValHold{
    public int i = 10;
}

public class ObParm
{
    public static void main(String argv[])
    {
        ObParm o = new ObParm();
        o.amethod();
    }
    
    public void amethod()
    {
        int i = 99;
        ValHold v = new ValHold();
        v.i=30;
        another(v,i);
        System.out.println(v.i);
        
    } //End of amethod

    public void another(ValHold v, int i)
    {
        i=0;
        v.i = 20;
        ValHold vh = new ValHold();
        v =  vh;
        System.out.println(v.i+ " "+i);
        
    } //End of another

}

正确输出结果为:
10 0
20

但最后一个20我有点想不通,各位帮我解释解释! 谢谢!!

|
public void amethod()
{
  int i = 99;
  ValHold v = new ValHold(); //这里产生了第一个ValHold对象A,v是指向A的reference,假设v的值是X
  v.i=30; //A的i变为30
  another(v,i); //v和i把他们的值复制了一份交给another(),分别是X和99
  System.out.println(v.i); //输出A的i

} //End of amethod

public void another(ValHold v, int i)
{  //该函数的参数v、i只相当于两个局部变量,他们的生存期只到该函数执行完
  //上面调用该函数时将两个值X和99分别传给了v和i
  i=0;
  v.i = 20; //v的值仍为X,也就意味着他仍指向对象A,A的i变成了20
  ValHold vh = new ValHold(); //这里产生了第二个ValHold对象B,vh是指向B的reference,假设vh的值是Y
  v = vh; //v的值变成了Y——注意!对象A并未改变
  System.out.println(v.i+ " "+i); //输出B的i以及局部变量i

} //End of another

microibm():不知以上是否解释清楚了。

|
......
public void another(ValHold v, int i)
{
i=0;
v.i = 20;//

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 今天金山系统测试的一道笔试题
  • 一道百度笔试题(关于ssh)
  • 一道关于操作系统的题 iis7站长之家
  • 一道类似于JAVA程序员认证的试题,请大家来看看
  • 一道笔试题:linux下找bug
  • scjp一道试题!
  • 问:一道SCJP试题
  • 问一道昨天威盛笔试题
  • 一道笔试题:用open/close/read/write完成大文件读写。
  • 一道送分的问题
  • 一道考验基础的JAVA语法题
  • 问个AIX题库的一道题,感觉答案应该是A啊
  • 关于构造函数的一道题
  • 初中计算机老师给我们出过一道题,那时候印象很深
  • 一道基础英语填空题(Java)
  • 问一道SCJP的题目
  • SCJP 模拟题一道
  • scjp考题一道
  • scjp考题一道!!!!!!!!
  • 一道SCJP的题
  • 一道SCJP题有请各大虾指教.
  • 一道题,select what & why?
  • 一道关于操作系统的题
  • 问一道算法题
  • 一道习题
  • 一道小程序有问题?请教!
  • 一道scjp的题目
  • 一道scjp模拟题,请赐教。
  • 关于操作系统的一道题目(关于临时文件)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3