手撸代码实现equals方法

重点都在注释里面写了,这里就不再重复叙述,贴上代码到博客主要是备用。

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

猜你喜欢

转载自www.cnblogs.com/norahc/p/10778718.html