Java中内置的equals方法

时间:2018-10-29 15:10:57

标签: java

我在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 :)

1 个答案:

答案 0 :(得分:1)

如果您没有在您的类中覆盖equals()方法,则它引用基类“ Object”中的equals方法。 Object类中equals的默认实现是对象引用(地址)的浅层比较。