Object 类中定义有:
public boolean equals (Object obj)方法
提供对象是否“相等”的逻辑
Object 的equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回true否则返回false
api中的equals的原型是:
public
boolean
equals (Object x){
return
this
== x;
}
jdk中提供的一些类,如String、Date等,重写了Object的equals方法,调用这些类的equals方法,x.equals(y),当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同的对象)返回true否则返回false
可以根据需要在用户自定义类型中重写equals方法
例子:
public class equals { public static void main(String[] args) { // TODO Auto-generated method stub Integer i1 = new Integer(1); Integer i2 = new Integer(1); System.out.println(i1 == i2); System.out.println(i1.equals(i2)); Mao m1 = new Mao("A", "A"); Mao m2 = new Mao("A", "A"); System.out.println(m1 == m2); System.out.println(m1.equals(m2)); } } class Mao { String name; String color; Mao(String n,String c){ name = n; color = c; } public boolean equals(Object obj) { return true; } }
返回结果:
false
true
false
true