设计一个Book类,该类有书名bookname,价格price,要求有构造方法实现实例的初始化,重写toString()方法返回实例的信息,重写equals(),当两本书的价格相等时,返回真,否则为假
时间: 2024-10-11 20:16:45 浏览: 43
设计一个简单的`Book`类,你可以这样做:
```java
public class Book {
private String bookName;
private double price;
// 构造方法用于实例化并初始化属性
public Book(String bookName, double price) {
this.bookName = bookName;
this.price = price;
}
// toString()方法返回实例信息
@Override
public String toString() {
return "Book{" +
"bookName='" + bookName + '\'' +
", price=" + price +
'}';
}
// equals()方法判断两个书的价格是否相等
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Book otherBook = (Book) obj;
return Double.compare(otherBook.price, price) == 0;
}
}
```
在这个类中,我们有一个构造函数接受书名和价格作为参数,并在内部设置它们。`toString()`方法返回了一个包含书名和价格的对象描述字符串。而`equals()`方法则实现了自定义的比较规则,如果传入的对象也是`Book`类型的,并且其价格与当前对象的价格相等,则返回`true`,否则返回`false`。
阅读全文