基本概念:
Object類別位於java.lang套件中,java.lang套件包含著Java最基礎和核心的類,在編譯時會自動導入;
Object類別是所有Java類別的祖先。每個類別都使用 Object 作為超類別。所有物件(包括數組)都實作這個類別的方法。可以使用型別為Object的變數指向任意型別的物件
equals()方法:比較兩個物件是否同一
#如果兩個物件具有相同的類型以及相同的屬性值,則稱這兩個物件相等。如果兩個引用物件指的是同一個物件,則稱這兩個變數為同一。 Object類別中定義的equals 函數原型為:
public boolean equals(Object);他是判斷兩個物件是否同一,並不是相等
package com.example.demo.test; public class Person { private String userName; private String age; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
package com.example.demo.test; public class Test { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); System.out.println(p1.equals(p2)); System.out.println(p1 == p2); /* * String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。 */ String s1 = new String("AA"); String s2 = new String("AA"); System.out.println(s1.equals(s2)); System.out.println(s1 == s2); } }############從執行結果可以看到的是Object中的equals方法比較的是兩個物件是否同一,######而String類別中的equals方法比較的是字串的value是否相等。請看String.java中equals的方法###
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
以上是如何正確使用Java Object類別的equals()方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!