改变了对象里的值,u变量是引用,它保存的是new出来对象的地址。Java传递的永远是变量中保存的值
public class ConstructorTest01 {
public static void main(String[] args) {
User u = new User(20);
add(u);
System.out.println(u.age);//21
}
private static void add(User u) {
u.age++;
System.out.println(u.age);//21
}
public class User {
int age;
public User(int i) {
age = i;
}
}
}
public class ConstructorTest01 {
public static void main(String[] args) {
int i = 10;
add(i);
System.out.println(i);//10
}
private static void add(int i) {
i++;
System.out.println(i);//11
}
}
i变量保存10,把10传给add(),但是i还是10。