Object 類中的 equals方法


1 相等與同一

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

2 equals方法

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

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

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

3 equals()方法的重寫:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM