为了账号安全,请及时绑定邮箱和手机立即绑定

java中关于类组合的一个问题

java中关于类组合的一个问题

JYU_Wu 2017-01-06 16:38:02
 //一条线段包含两个端点   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 = b;       p2 = new Point(b.GetX(),b.GetY());    }     public double Length() {         return Math.sqrt(Math.pow(p2.GetX()-p1.GetX(),2)                                   + Math.pow(p2.GetY()-p1.GetY(),2));     } }在上面的代码中: p1 = new Point(a.GetX(),a.GetY());    p2 = new Point(b.GetX(),b.GetY()); //这里为什么不使用p1 = a; p2 = b;
查看完整描述

1 回答

?
Caballarii

TA贡献1123条经验 获得超629个赞

p1=a的话,只要a改变了,Line里的p1也会改变,所以需要把Point里的值拿出来做深度拷贝,避免这种不可控现象

查看完整回答
反对 回复 2017-01-06
  • 1 回答
  • 0 关注
  • 1636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信