这是一个类的组合问题点
public class Point
{
   private int x,y;
   public Point(int x,int y)
   {
     this.x=x;this.y=y
   }
   public int GetX()
   { return x;}
   public int GetY()
   { return y;}
}
线
class Line
{
    private Point p1,p2;
    Line(Point a,Point b)
    {
       p1=new Point(a.GetX(),a.GetY());
       //注意:这个地方为什么不能写成p1=a    ?????????????????????       p2=new Point(b.GetX(),b.GetY());
       //注意:这个地方为什么不能写成p2=b    ????????????????????? 
    }
}
这是为什么呀?

解决方案 »

  1.   

    你写成p1=a 和p2=b 只是被描述成对实参对象的引用。
    你要使p1和p2产生和实参不同的对象 就必须用new 关键字
      

  2.   

    我有一个对像A,B传给你,但是你没有产生新的对像,也是引用我的对像,如果我一旦改变这两个A,B你的也会改变,
    如果我传给你的时候你产生两个新的对像,他们的值是一模一样的,这时候我改变我的对像A,B时你的就不会跟着改变了
      

  3.   

    如果你实参 由于某种原因被销毁了。
    那你P1和P2就为null了