值传递:方法调用时,实际参数把它的值传递给对应的形式参数,
方法执行中形式参数值的改变不影响实际参数的值。
如下代码:
public class ValueTrans {
public static void exchange(int a, int b) { //静态方法,交换a,b的值
int temp;
temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
int i = 3;
int j = 5;
System.out.println("before call: " + "i=" + i + " j=" + j); //调用前
exchange(i, j); //值传递
System.out.println("after call: " + "i=" + i + " j=" + j); //调用后
}
}
引用传递:也称为传地址。方法调用时,
实际参数的引用地址,被传递给方法中相对应的形式参数,
在方法执行中,对形式参数的操作实际上就是对实际参数的操作,
方法执行中形式参数值的改变将会影响实际参数的值。
如下代码:
class Book {
private String name;
public class QuoteTrans {
public static void main(String[] args) {
Book b = new Book("java");
System.out.print("before call: "); //调用前
b.look();
b.change(b, "c++"); //引用传递,传递对象b的引用,会修改对象b的值
System.out.print("after call: "); //调用后
b.look();
}
}