class a{int i = 1;}
public class rf{
public static void main(String argc[]){
rf rf1 = new rf();
rf1.method0();
}
void method0 (){
a aa = new a();
aa.i=10;
method1(aa);
System.out.println(aa.i);
}
//传入的是aa的一个copy
void method1(a aa){
int i = 100;
aa.i = 20;
a bb = new a();
//修改了外部aa的一个copy,因而main函数重的aa所指向的对象仍然是调用
//方法method1之前的那一个,所以方法method1中的赋值不改变外部对象的
//指向,但是aa.i仍然改变了另一个对象中i的值.
aa = bb;
System.out.println(aa.i+" "+i);
}
}