引用的传递

    技术2022-05-11  92

    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);                                      }  

                            }


    最新回复(0)