我有这样一个简单的程序。
public class J_Test
{
public static void main (String args[])
{
String[] s = {"1","2"};
J_Test j = new J_Test();
j.mb_swap(s[0],s[1]);
System.out.println(s[0]+s[1]);
}
public void mb_swap(String a, String b)
{
String t = a;
a = b;
b = t;
}
}但是每次打出来都是12,我想要21怎么办?因为用C都是直接这样写,但不明白为什么在Java就不被转过来。用static也不行。谢谢。
public class J_Test
{
public static void main (String args[])
{
String[] s = {"1","2"};
J_Test j = new J_Test();
j.mb_swap(s[0],s[1]);
System.out.println(s[0]+s[1]);
}
public void mb_swap(String a, String b)
{
String t = a;
a = b;
b = t;
}
}但是每次打出来都是12,我想要21怎么办?因为用C都是直接这样写,但不明白为什么在Java就不被转过来。用static也不行。谢谢。
String[] s = {"1","2"};
J_Test j = new J_Test();
j.mb_swap(s, 0, 1);
System.out.println(s[0]+s[1]);
}public void mb_swap(String[] d, int index1, int index2) {
String t = d[index1];
d[index1] = d[index2];
d[index2] = t;
}
那我大概明白什么意思了。好像C里面不需要那么麻烦吧……
而且Java对类的引用传递方式也不像C++里的引用传递,Java那个的实质还是传递的一个引用的值(再说明白点就是一个指针),C++传进去那个才是真正的引用。