如何在java中使用引用调用

gqlao 2004-04-20 05:21:52
写了一个很简单的类
public class test
{
public void changepara(int a)
{
a = 2;
}

public static void main(String[] arg)
{
test b = new test();
int c = 0;
b.changepara(c);
System.out.println(c);
}
}
我是想用changepara这个方法来改变传入的int a的参数的值但是输出为0,不知要如何写方法才能实现参数的引用调用呢?在C++里貌似在参数前加个&就可以了。
...全文
156 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gqlao 2004-04-22
  • 打赏
  • 举报
回复
to bigcrazy(大疯狂)
请问你说的 一是把整数变量声明为静态的 二是用整数数组代替整数
具体如何实现呢?能给个简单的例子吗?谢谢。
fingerfox 2004-04-21
  • 打赏
  • 举报
回复
String 也不可以
该怎么解决呢 ?
wwlwxx 2004-04-21
  • 打赏
  • 举报
回复
如:
public class test2
{
public void changepara(Integer a)
{
a = new Integer(2);
}

public static void main(String[] arg)
{
test2 b = new test2();
int c = 0;
Integer a = new Integer(c);
b.changepara(a);
System.out.println(a);
}
}

输出还是0。
wwlwxx 2004-04-21
  • 打赏
  • 举报
回复
我想问一下,为什么用Integer类也不行,它的对象传的不是引用吗??
bigcrazy 2004-04-21
  • 打赏
  • 举报
回复
没错,参数必须是对象,传递的才是引用。如果参数是原始类型(int\float\double等),传递的只能是值。
要实现你的功能:
一是把整数变量声明为静态的
二是用整数数组代替整数
gqlao 2004-04-21
  • 打赏
  • 举报
回复
自己再顶一下,请DX们帮忙。
gqlao 2004-04-21
  • 打赏
  • 举报
回复
bigcrazy(大疯狂) 不是说了吗,如果参数是原始类型(int\float\double等),传递的只能是值
gqlao 2004-04-20
  • 打赏
  • 举报
回复
另外查了一下资料,发现用
public class test
{
public int a;

public void changepara(testcz b)
{
b.a = 2;
}

public static void main(String[] args)
{
test bb = new test();
bb.a = 0;
bb.changepara(bb);

System.out.println(bb.a);
}

}
可以打印出2,但是参数必须是自己定义的一个类的对象才行,这样也太麻烦了,有没有别的办法?

62,623

社区成员

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

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