| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5713 人关注过本帖
标题:考大家一道题(把我迷糊了) 答对"有奖"!
只看楼主 加入收藏
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

深了,我选A...选错了..还得再学习基础知识呀..


我在说's blog   http://www..cn
2006-08-29 23:06
lysi16
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-8-31
收藏
得分:0 
以下是引用jiqijiqi在2006-5-27 21:17:00的发言:
刚开始以为是10,0,10 后来想通了

amethod()方法的参量一个是对象的引用,引用的是一个内存地址,把参量名字认为是
public void another(Test g,int i) 如果对g对象里的参量直接修改,就相当于对v对象里的i进行修改,所以先输出20,0 在这个方法里g又指向VH对象,但是V并没有改变,方法返回后 V.i的值为20.

我也是,呵呵

2006-08-31 20:35
mercyblitz
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-5-20
收藏
得分:0 
答案是d啊!
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);//传递参数后,v.i=20,因为在another方法中付的值
System.out.println(v.i);
}
public void another(Test v, int i){
i=0;
v.i=20;
Test vh=new Test();
v=vh;// 这里的引用后,v.i=10;
System.out.println(v.i+" "+i); // i=0;
}
}
我想问有什么奖励?
:D
2006-09-02 09:16
wuxb
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-26
收藏
得分:0 
MD,广告真犯人,最后一行是
+" "+ ??!
2006-09-02 10:42
wuxb
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-26
收藏
得分:0 
楼主解释一下吧,是不是像c一样传“指针”过去了?
2006-09-02 10:47
lwfllr
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-2
收藏
得分:0 
楼上~~
不是传指针~~
是传地址~~
指针在C里面再说吧~~

在愿意的时候做能做的事~~
2006-09-02 13:18
bob7789
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-4-10
收藏
得分:0 

路过,只想问一下,奖品是什么东东?

2006-09-02 20:25
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
得分:0 
  这道题出的太经典了!
感谢上传者!通过这道题学了不少东西!

2006-09-03 22:07
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 
呵呵,做对了~~!

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-09-04 00:55
haiziwang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-6
收藏
得分:0 

我也是初学,不知道对不对,仅供参考吧。还是期待高手的见解!

public void amethod(){
int i=99;
Test v=new Test();
v.i=30;
another(v,i);
System.out.println(v.i); // 这的V相当于this.v (或者可以把another方法中的V看做一个局部变量。)
}
public void another(Test v, int i){
i=0;
v.i=20;//这里的V指象的堆内存还是和amethod里的地址一样,所以 i=30可以被i=20 覆盖。
Test vh=new Test();
v=vh; ////这里的V的句柄和VH指象的是同一快。所以下边的输出就应该是v.i=10 i=0;

System.out.println(v.i+" "+i);

2006-09-06 23:49
快速回复:考大家一道题(把我迷糊了) 答对"有奖"!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026789 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved