java中基本类型的参数传递和引用类型的参数传递
基本类型的参数传递
基本类型的参数传递,方法不改变参数值
public class BasicTypeTransfer {
public static void swap(int a, int b){
int tmp = a;
a = b;
b = tmp;
System.out.println("in swap: a = "+a+", b = "+b);
}
public static void main(String[] args) {
int a = 3;
int b = 6;
System.out.println("before swap: a = "+a+", b = "+b);
swap(a,b);
System.out.println("after swap: a = "+a+", b = "+b);
}
}
/*
* before swap: a = 3, b = 6
in swap: a = 6, b = 3
after swap: a = 3, b = 6
*/
引用类型的参数传递
引用类型的参数传递,方法改变参数值
public class ReferenceTransfer {
public static class DataWrap {
int a;
int b;
}
public static void swap(DataWrap dw) {
int tmp = dw.a;
dw.a = dw.b;
dw.b = tmp;
System.out.println("in swap: a = "+dw.a+", b = "+dw.b);
}
public static void main(String[] args) {
DataWrap dw = new DataWrap();
dw.a = 3;
dw.b = 6;
System.out.println("before swap: a = "+dw.a+", b = "+dw.b);
swap(dw);
System.out.println("after swap: a = "+dw.a+", b = "+dw.b);
}
}
/*
* before swap: a = 3, b = 6
in swap: a = 6, b = 3
after swap: a = 6, b = 3*/