手擼代碼實現equals方法
阿新 • • 發佈:2019-04-27
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方法