运行下面的代码后,我得到这个输出:
前夕
1200
谁能解释一下为什么Person类型变量的值被改变而Integer类型变量的值不是?
我已经读过这个:
> www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html
> www.yoda.arachsys.com/java/passing.html#formal
但我不明白为什么使用Person和Integer类型它的工作方式不同.
public class Test {
public static void main(String[] args) {
Object person = new Person("Adam");
Object integer = new Integer("1200");
changePerson(person);
changeInteger(integer);
System.out.println(person);
System.out.println(integer);
}
private static void changeInteger(Object integer) {
integer = 1000;
}
private static void changePerson(Object person) {
((Person)person).name="Eve";
}
}