既然String类型在参数传递中传递的是值,那么怎么进行两个String的互换

来源:百度知道 编辑:UC知道 时间:2024/06/12 07:10:37
既然String类型在参数传递中传递的是值,那么怎么进行两个String的互换。例如如下方法
public void swap(String s1,String s2){
String temp=s1;
s1=s2;
s2=s1;
}
如果在一个main函数中有
String s1="first";
String s2="second";
如果在这个main函数中调用上面的swap(s1,s2)方法,肯定不能实现s1,s2互换,请问那我该怎么做,才能实现s1,s2的互换呢?(当然用调用方法的模式)
刚才的swap方法写错了,应该是
public void swap(String s1,String s2){
String temp=s1;
s1=s2;
s2=temp;
}

public void swap(String s1,String s2){
String temp=s1;
s1=s2;
s2=temp;
}
首先:可以肯定的讲,这种对象交换,你是实现不了的。
如果一定要这样交换的话,必须借助另外一个对象。
像下面这样

class Sunflower {
public static String str1;
public static String str2;
}

public class Demo {
public static void main(String[] args) throws Exception {
Sunflower s = new Sunflower();
s.str1 = "111";
s.str2 = "222";
change(s);
System.out.println(s.str1);
System.out.println(s.str2);
}

public static void change(Sunflower s1) {
String temp = s1.str1;
s1.str1 = s1.str2;
s1.str2 = temp;
}
}

这样才可以成功交换!
如果你对 值、引用、对象有一定了解的话,我在这里可以多讲一些。
值这里就不讲了:
主要:对象,引用
对象 != 引用
如果你明白这一点,可以继续看下去,反之只要记住上面给你的交换方法,下次机械的用就可以了。

对象:一个对象可以被很多引用关联

引用: 一个引用只可以关联一个对象
Object obj1;
Object obj2;
Object obj3;
这里我创建了三个引用,没有创建对象