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);
}
}