在Java中重写equals方法
考虑下面的Java程序:
class
Complex {
private
double
re, im;
public
Complex(
double
re,
double
im) {
this
.re = re;
this
.im = im;
}
}
// Driver class to test the Complex class
public
class
Main {
public
static
void
main(String[] args) {
Complex c1 =
new
Complex(
10
,
15
);
Complex c2 =
new
Complex(
10
,
15
);
if
(c1 == c2) {
System.out.println(
"Equal "
);
}
else
{
System.out.println(
"Not Equal "
);
}
}
}
输出:
Not Equal
打印“不等于”的原因很简单:当我们比较c1和c2时,检查c1和c2是否指向同一个对象。c1和c2引用两个不同的对象,因此值(c1 == c2)为false。如果我们创建另一个引用,比如说c3,那么(c1 == c3)将赋予true。
Complex c3 = c1; // (c3 == c1) will be true
那么,我们如何检查对象内部的值是否相等?Java中的所有类从对象类继承,直接或间接地。该Object类有类似克隆的一些基本方法()的toString(),equals()方法,...等。
更多内容请访问:在Java中重写equals方法 - Break易站 (Java的编程语言汇总)
转载于:https://blog.51cto.com/mrarvin/2299873