class A {
int val;
}
public class main {
public static void fun(A a, A b) {
// a.val = 6;
a = b;
}
public static void main(String[] args) {
A a = new A();
A b = new A();
a.val = 5;
b.val = 7;
System.out.println(a.val);
fun(a, b);
System.out.println(a.val);
}
}
在Java中只有值传递,只是引用对象传递的值是对象的地址,所以看起来像是引用传递
所以,在函数中改变对象的属性时,改变的是对应地址上的对象的属性,是可以改变的
但,在函数中直接改变对象,改变的是形参指向的地址,所以原对象是无法改变的