1. 程式人生 > >手擼代碼實現equals方法

手擼代碼實現equals方法

als ring stat this int sta lse args return

重點都在註釋裏面寫了,這裏就不再重復敘述,貼上代碼到博客主要是備用。

package equals;

class Book extends Object {
private String title;
private double price;

public Book(String title, double price) {
this.title = title;
this.price = price;
}

public String toString() {
return "" + this.title + "" + this.price;
}

public boolean equals(Object obj) {
if (obj == this) {
return true;//傳入的對象跟當前對象的地址值一樣,說明是同一對象,為真。
}
if (obj == null) {
return false;//傳入對象為空
}
if (!(obj instanceof Book)) {
return false;//判斷傳入的obj對象是否是Book類的實例化對象,如果不是,返回false。
}
Book book = (Book) obj;//向下將obj對象轉型為Book類對象。這裏是強制轉型所以加上(Book)
if (this.title.equals(book.title) && this.price == book.price) {
return true;
}
return false;
}
}

public class demo {
public static void main(String[] args) {
Book bookA = new Book("java",78.1);
Book bookB = new Book("java",78.1);
System.out.println(bookA.equals(bookA));
}
}

手擼代碼實現equals方法