这个是作用域的问题。
changePoint里new的对象,没有return,在changePoint方法结束后,就没用了,那个索引还是指向原来的对象。

解决方案 »

  1.   


    也就是说
    pt1.changePoint(point);
    中的point还是指向 class Point中的 int x; int y;么???
      

  2.   

    画的是丑了点,不过这么细心,斑竹,求表扬。因为在changePoint()方法中重新创建了一个对象并赋给传入的参数,其实这个方法没有参数也没有返回值,就是自个在那里玩,所以,其操作对方法外面的所有代码不会产生任何影响(在你的情况下),要产生影响,需要去掉point = new Point();这句话
      

  3.   

    说明问题就好,楼主可以看看关于Java参数传递的相关内容。更全面的了解Java参数传递机制。
      

  4.   


    也就是说
    pt1.changePoint(point);
    中的point还是指向 class Point中的 int x; int y;么???
    打个比方吧:引用就像遥控器,new动作会产生一台电视机,而不同的方法区、作用域可以看做不同的房间。
    你在主方法产生一个遥控器和电视机,然后带着遥控器去了另外一个房间,此时遥控器可以遥控原来房间的电视,但是没有遥控原来的电视,而是又生产了一台电视机,遥控了下这个新生产的电视机,接着回到原来房间,此时原来房间的电视机是没有换台的。