我在Java中具有以下代码:
class Complex {
private double re, im;
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
}
public class Main {
public static void main(String[] args) {
Complex c1 = new Complex(10, 15);
Complex c2 = new Complex(10, 15);
if (c1.equals(c2)) {
System.out.println("Equal ");
}
else
{
System.out.println("Not Equal ");
}
}
}
我的问题: 为什么此程序输出不等于?,所以内置的equals方法用于内容比较,而不用于地址比较,例如==运算符。 很多tnx :)
答案 0 :(得分:1)
如果您没有在您的类中覆盖equals()方法,则它引用基类“ Object”中的equals方法。 Object类中equals的默认实现是对象引用(地址)的浅层比较。