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