在开始之前,大家在脑子运行一下下面的程序,不难得出运行的结果是:
a is : 3
b is : 0 (结果execute方法中的a,b没有得到交换)
毫无意外,对于这个结果。在C++中,我们一般是用引用和指针来解决交换的问题,不过我们先不探讨如何设计交换方法,在这之前,我们先分析一下为什么不能交换的问题。如果你已经很了解了,请跳过直接进入next step:
public class A {
public void exchange(int x, int y) {
temp = x;
x = y;
y = temp;
}
public void execute(){
int a = 3;
int b = 0;
exchange(a,b);
System.out.println("a is : "+ a);
System.out.println("b is : "+ b);
}
public static ... main(...) {
(new A()).execute();
}
}
接下来我们又来看看这个程序:
public class B{
public void exchange(StringBuffer strOne, StringBuffer strTwo) {
……等待中
}
}