最近刚开始学java假设有2个 Point 对象Point p1 = new Point();
Point p2 = new Point();我想将 p2 的坐标赋值给 p1,代码怎么写?
不会是 p1.x = p2.x; p1.y = p2.y; 吧?另外我想判断 p1 和 p2 的坐标是否相同,怎么写?
p1.equals(p2) ?

解决方案 »

  1. 1,p1 = p2搞定.
    2,重写equals()方法,如下:
    equals(Point p2){
    if(this.x == p2.x && this.y == p2.y) return true;
    else return false;
    }
    就可以用p1.equals(p2)来判断了.
      

  2. Object中继承的equals默认的实现是用“==”来判断是否相等,而不是比较内容
      

  3. 我也在学java,个人觉得方法重写就可以了吧??
      

  4. equals(Point p2){ 
    if(this.x == p2.x && this.y == p2.y) return true; 
    else return false; 

      

  5. p1=p2;
    至于第2个,完全没有必要重写equals,随便写个方法比较坐标就行了,相等返回true,否则返回false。如果Point中有其他元素,只单纯的比较坐标相等,就认为这两个对象一样,显然不合适!
      

  6. 8错,楼主并不是想使用equals方法,他只想比较2者的坐标,自己写个方法,传p1,p2,然后比较就可以了
      

类似问题 »