Object 类的equals方法

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

 

posted @ 2018-12-26 11:08  雪地里的Alan  阅读(103)  评论(0编辑  收藏