| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 867 人关注过本帖
标题:参数传递问题
只看楼主 加入收藏
yinxuchina
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-2-1
收藏
 问题点数:0 回复次数:16 
参数传递问题

public class PassTest {

/**
* 参数传递测试
*/
public int i =0;
public static void main(String[] args) {

int number1 = 0;
PassTest number2 = new PassTest();
PassTest number3 = new PassTest();
int[] number4 = {0};

test(number1, number2, number3, number4);
System.out.println("number1="+number1);
System.out.println("number2.i="+number2.i);
System.out.println("numbe3.i="+number3.i);
System.out.println("number[0]="+number4[0]);


}
public static void test(int number1,PassTest number2,PassTest number3
,int[] number4){

number1=1;
number2.i=1;
number3 = new PassTest();
number3.i=1;
number4[0]=1;

}
}

为什么打印结果是
number1=0
number2.i=1
numbe3.i=0
number4[0]=1

哪个大侠解释哈

[此贴子已经被作者于2007-3-28 21:17:30编辑过]

搜索更多相关主题的帖子: 参数 
2007-03-28 21:16
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

有什么疑问


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-28 21:31
yinxuchina
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-2-1
收藏
得分:0 
在test()方法中 4个参数的 值都改为1了,怎么打印出来是那个结果

2007-03-28 21:37
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
第一个是基本类型
在栈里分配的
第3个你在里面让新分配的对象为1
原来的没变
注意引用概念

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-28 21:52
旋转女孩
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-3-22
收藏
得分:0 
test中number1的改变相当于局部变量的改变是不影响方法外面的
number2.i得到的是成员变量i的引用它的作用域是整个类
number3是重新创建了一个对象不会影响到原来的
数组中的int得到的是对象的引用而不是一般的数据类型,所以number4[0]输出的是1

这样解释不知对不对,我也是一知半解,不对之处还望指出更改



即使所有人反对,我依然坚持我的选择……
2007-03-28 22:26
yinxuchina
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-2-1
收藏
得分:0 
在对象作为参数的时候,传入的不是对象,也不是对象的地址,而是对象地址的引用
不知道这样理解对不对

2007-03-28 22:32
旋转女孩
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-3-22
收藏
得分:0 
传递的是对象引用的值,java中所有参数传递都是值传递

即使所有人反对,我依然坚持我的选择……
2007-03-28 22:41
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
楼上正解

可惜不是你,陪我到最后
2007-03-29 10:07
sea7
Rank: 2
等 级:新手上路
威 望:3
帖 子:291
专家分:0
注 册:2007-2-17
收藏
得分:0 
传递的是对象的引用啊!!

软件是一种修养
2007-03-29 12:44
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

不是对象的引用,是对象的引用的值


可惜不是你,陪我到最后
2007-03-29 12:51
快速回复:参数传递问题
数据加载中...
 
   



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

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