没错当然不报
void func1(MyInt mi1) {
MyInt a1 = new MyInt(1);
mi1 = a1; //只能修改mi1.abc,修改mil相当于将这个引用指向a1,不影响原来的实列a
}
void func1(MyInt mi1) {
MyInt a1 = new MyInt(1);
mi1 = a1; //只能修改mi1.abc,修改mil相当于将这个引用指向a1,不影响原来的实列a
}
func1改变了在方法中mi1的引用的值,使它指向另一个对象,但对原先的reference并没影响,因此在方法外引用的还是原先的对象。
func2改变的不是引用,而是引用所指向的对象,也即原先的reference指向的对象,使此对象的域abc变为2,然后在此方法外引用的还是原先的对象,只是此对象的域abc改变了。