在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的编程语言汇总)