现在刚开始学习java。今天写一个swap,让我对java没有指针这个事情深有体会。
由于我想是把swap()当成一个函数来写,因此我尝试这样的方式。
private static void swap(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
我发现在eclipse中是有错误的,java中的参数传递都是采用值传递的传递方式,因此不能使用引用符号。
后面我发现可以使用重新赋值的方法:
private static int[] swap(int a, int b){
int temp = a;
a = b;
b = temp;
return new int[]{a,b};
}
//下面是主函数的实现
public static void main{
int a = 4;
int b = 6;
int[] swap = swap(a,b);
a = swap[0];
b = swap[1];
System.out.print(a + " ");
System.out.print(b);
}
但是我觉得使用这样的方式还是有点恼火,毕竟比较麻烦。于是我想到了外部内联的方式。
public class TestSwap {
public static void main(String[] args){
Exchange exc = new Exchange(2,3);
exc.swap(exc);
System.out.print(exc.i);
}
}
class Exchange{
int i , j;
Exchange(int i, int j){
this.i = i;
this.j = j;
}
public void swap(Exchange exc){
int temp = exc.i;
exc.i = exc.j;
exc.j = temp;
}
}
使用这种方式能够简单的简明的实现这种方式。
通过这个简单的函数认识了java语言的特性。