在Java中,我們常常需要比較兩個對象是否相等。在這個過程中,通常會用到兩個方法:equals()和==。盡管它們都可以用來進行對象比較,但它們之間還是有很大的不同的。
public class Student { private int id; private String name; public Student(int id, String name) { this.id = id; this.name = name; } // getter and setter methods @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof Student)) { return false; } Student other = (Student) obj; return id == other.id && name.equals(other.name); } }
在這個示例中,我們定義了一個名為Student的類。該類有兩個私有字段:id和name。我們還為該類提供了一個構造函數和getter / setter方法。此外,我們還重載了equals()方法,以便我們可以使用它來比較兩個Student對象。
當使用equals()方法時,它將比較兩個對象的內容(即它們包含的數據)。在上面的示例中,我們比較了兩個Student對象之間的id和name字段,如果它們都是相等的,equals()方法將返回true。這種用法與我們指定的邏輯有關,因為我們認為兩位學生如果他們的學生編號和名字都相同,那么我們就把它們視為相等。
Student student1 = new Student(1, "Tom"); Student student2 = new Student(1, "Tom"); System.out.println(student1 == student2); // false System.out.println(student1.equals(student2)); // true
在這個示例中,我們創建了兩個Student對象,每個對象具有相同的id和name字段。我們接下來使用==和equals()方法比較這兩個對象。前者比較的是對象的引用,因此==只有在比較同一對象時返回true。后者比較的是對象的內容,因此即使我們創建了兩個不同的Student對象,equals()方法也可以將它們視為相等。
上一篇vue手勢滑動page
下一篇HTML百度代碼咋寫