java equals的用法

equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。
package Xuexi;

public class Person {
   private String name;
   private int age;
public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}

public void setAge(int age) {
	this.age = age;
}
 @Override
 //判断是否是同龄人
	public boolean equals(Object obj) {
	  // TODO Auto-generated method stub
	 //判断调用者和传进来的对象是否一致
	  if(obj==this){
		  return true;
	  }
	  if(obj instanceof Person){
		  Person p=(Person)obj;
		  return p.age==this.age;
	  }
		return false;
	}
package Xuexi;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Person p1=new Person();
        p1.setAge(28);
        Person p2=new Person();
        p2.setAge(17);
        //==比较的是两个引用类型的地址
        //如果你的person没重写object子类,那么你的p1.equals(arr)调用的是object的equals方法,比较的是两个对象的内存地址,没有实用意义
        //而我们的Person类如果比较的话应该比较年龄是否相同就要重写父类的equals方法
        boolean b=p1.equals(p2);
        System.out.println(b);	
	}

}
原文地址:https://www.cnblogs.com/hankai2735/p/9075775.html