作者Egriawei (断背山狼与羊)
站内java
标题Re: [问题] 自订类别继承Object的问题
时间Thu Jun 1 19:18:41 2006
: 但是问题来了
: 当我 Ball b1 = new Ball(18.4, "red ball");
: Ball b2 = new Ball(18.4, "red ball");
: 然後 System.out.println(b1 == b2); <-- 这个false我能理解 毕竟两个不同物件
: System.out.println(b1.equals(b2)); <-- 这个false我就不能理解了
: 它不是比较这两个物件的内容是否相同吗?
: 这个问题请教版上先进 感谢
字串的 S1==S2 是看指向的记忆体是否相同
字串的 equals 是判定内容是否相同
这点没有疑问
物件的 == 和字串一样是看参考的记忆体是否相同
关於物件的equals方法说明如下:
public boolean equals(Object obj)
比较两物件是否相等。但唯有在"=="运算子
无法比对两物件时,才需要覆盖equals方法
且同时还必须覆盖hashCode方法
public int hashCode()
传回物件在hash table的对应位置(hash code)
同物件当然产生相同code,但不同物件可以共享code
意即共同指向相同参考
似乎是,物件的equals也是指参考的相同与否
难到String有特别覆盖过?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.40.35
※ 编辑: Egriawei 来自: 61.230.40.35 (06/01 19:30)