问一个java中对象赋值和是否相等的问题

marrco2005 2009-11-16 02:33:32
最近刚开始学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) ?
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao11811 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 closewbq 的回复:]
引用楼主 marrco2005 的回复:
最近刚开始学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) ?

p1=p2;
至于第2个,完全没有必要重写equals,随便写个方法比较坐标就行了,相等返回true,否则返回false。如果Point中有其他元素,只单纯的比较坐标相等,就认为这两个对象一样,显然不合适!
[/Quote]
8错,楼主并不是想使用equals方法,他只想比较2者的坐标,自己写个方法,传p1,p2,然后比较就可以了
icekay Song 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 howardhewang 的回复:]
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)来判断了.
[/Quote]

= = 引错了. 顶一个楼的
icekay Song 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 marrco2005 的回复:]
最近刚开始学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) ?
[/Quote]
同意
closewbq 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 marrco2005 的回复:]
最近刚开始学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) ?
[/Quote]
p1=p2;
至于第2个,完全没有必要重写equals,随便写个方法比较坐标就行了,相等返回true,否则返回false。如果Point中有其他元素,只单纯的比较坐标相等,就认为这两个对象一样,显然不合适!
zl3450341 2009-11-16
  • 打赏
  • 举报
回复
equals(Point p2){ 
if(this.x == p2.x && this.y == p2.y) return true;
else return false;
}

machiatto19881031 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 howardhewang 的回复:]
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)来判断了.
[/Quote]
同意这个
aifengfei890811 2009-11-16
  • 打赏
  • 举报
回复
我也在学java,个人觉得方法重写就可以了吧??
stamp80 2009-11-16
  • 打赏
  • 举报
回复
Object中继承的equals默认的实现是用“==”来判断是否相等,而不是比较内容
howardhewang 2009-11-16
  • 打赏
  • 举报
回复
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)来判断了.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧