当前位置: 代码迷 >> Java相关 >> 考大家一道题(把我迷糊了) 答对"有奖"!
  详细解决方案

考大家一道题(把我迷糊了) 答对"有奖"!

热度:442   发布时间:2006-05-06 12:51:00.0
考大家一道题(把我迷糊了) 答对"有奖"!
选择下面这段代码的输出结果:
-----------------------------------------------------------------
class Test{
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;
Test v=new Test();
v.i=30;
another(v,i);
System.out.println(v.i);
}
public void another(Test v, int i){
i=0;
v.i=20;
Test vh=new Test();
v=vh;
System.out.println(v.i+" "+i);
}
}

----------------------------------------------------------
A 10,0,30
B 20,0,30
C 20,99,30
D10,0,20
(不许运行哦!)
搜索更多相关的解决方案: 答对  

----------------解决方案--------------------------------------------------------
我运行了一下

----------------解决方案--------------------------------------------------------
我的咋运行不了?
----------------解决方案--------------------------------------------------------
运行不了 就分析答案啊
----------------解决方案--------------------------------------------------------

开始时真的搞错了:我选了A...一运行唉..是最后一个...


----------------解决方案--------------------------------------------------------
我选B 马去运行下看看
----------------解决方案--------------------------------------------------------

class Test{
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;
Test v=new Test();
v.i=30;
another(v,i);
System.out.println(v.i); //为什么调用了another的方法后v.i=20屏蔽了v.i=30
} //斑竹,可以解释一下吗!?
public void another(Test v, int i){
i=0;
v.i=20;
Test vh=new Test();
v=vh; //因为这句话
System.out.println(v.i+" "+i); //所以这里调用的是Test中的变量i

}
}

----------------解决方案--------------------------------------------------------
重要是让大家掌握java参数传递 ada518618分析的不准确
----------------解决方案--------------------------------------------------------
为什么第三个是20,我觉着应该是10才对啊。
----------------解决方案--------------------------------------------------------
v的属性域i的值在another方法之后改变了
----------------解决方案--------------------------------------------------------
  相关解决方案