java 传参数问题???

MPhone 2008-01-21 10:13:32
下面先看看.net里的程序
---------------------
static void Main(string[] args)
{
int j=0;
abc(ref j);
Console.WriteLine(j);//这里把j的值打印出来是5
}

static void abc(ref int i)
{
i = 5;
}
-------------------------------

下面是java.但没用什么ref
java里有没有像这种ref传地址的
----------------------------------------------
public static void main(String[] args)
{
int j = 0;
abc(j);
System.out.println(j);我想把j的值变成5,怎么解决?
}

public static void abc(int i)
{
i=5;
}
-----------------------------------------------
...全文
245 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dan1980 2008-01-21
  • 打赏
  • 举报
回复
Java和C一样,不存在传引用。Java中所谓的“引用”其实相当于C/C++中的指针。
老紫竹 2008-01-21
  • 打赏
  • 举报
回复
那个ref可以理解成内存指针,也将成为因为问题的一个可能,java不支持这种不健壮的做法,注意,不是不安全。
Caesar_Gu 2008-01-21
  • 打赏
  • 举报
回复
想把值带回去,只能包装成对象。
yuanqingfei 2008-01-21
  • 打赏
  • 举报
回复
要重新赋值哦
iami007 2008-01-21
  • 打赏
  • 举报
回复
java中的所有的参数传递都是按值传递。。不存在按应用传递的
qixueqi 2008-01-21
  • 打赏
  • 举报
回复
必须是返回值,就是一楼的
c2one 2008-01-21
  • 打赏
  • 举报
回复
把基本类型包装成对象作为参数传递
runshine 2008-01-21
  • 打赏
  • 举报
回复
java里的基本类型是值传递,没有地址传递;对象是地址传递.
你或者把int类型的参数包装成Integer来传递

或者设置返回值


public static void main(String[] args)
{
int j = 0;
j=abc(j);
System.out.println(j);
}

public static int abc(int i)
{
i=5;
return i;
}

cyberpeng 2008-01-21
  • 打赏
  • 举报
回复
Java中primitive data type只能是传值。而对象只能是传引用。
tangjr 2008-01-21
  • 打赏
  • 举报
回复
把值包装成对象就行了
LJ 2008-01-21
  • 打赏
  • 举报
回复
这个问题确实对于我们这种新手..好头疼的...那到底有没有一个明确的答案..是不是在不提供返回值的情况下就无法交换那两个值了啊????
libenyue 2008-01-21
  • 打赏
  • 举报
回复
一楼的正确,你的结果那不就是0了!!!!!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧