object的

1 相等與同一

如果兩個對象具有相同的類型以及相同的屬性值,則稱這兩個對象相等。如果兩個引用對象指的是同一個對像,則稱這兩個變量同一。Object類中定義的equals 函數原型爲:public boolean equals(Object);他是判斷兩個對象是否同一,並不是是否相等。

2 equals方法

由於Object 類是所有類的最高基類,所有其他類都繼承類Object類的equals()方法,定義原型如下:

1
2
3
public boolean equals (Object x){
    return this == x;
}

 在java中 “==” 是判斷兩個對象是否同一,而不是判斷相等。因此Object類中的equals方法也是判斷兩個對象是否同一。要判斷兩個對象是否相等,就需要重寫equals()方法。

3 equals()方法的重寫:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Person{
    public String name;
    public int age;
     
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
     
    @Override
    public boolean equals(Object x){
        if(this.getClass() != x.getClass())
            return false;
        Person p = (Person)x;
        return (this.name == p.name) &&
                (this.age == p.age);
    }
     
}
 
public class Test{
    public static void main(String [] args){
        Person p1 = new Person("Lily",23);
        Person p2 = new Person("Lily",23);
        System.out.println(p1.equals(p2));
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章