题目
编写一个图书类Book,包图书的书号、书名、作者、出版社、价格等信息,要求能对属性可以进行初始化操作、修改属性值、获取属性值及重载toString()方法、equals()方法(用于比较书号)。
测试数据:
9787115417046 java程序设计 龚炳江 人民邮电出版社 49.8元
9787115417001 C++程序设计 张卉堰 机械工业出版社 29.5元
978713541734 操作系统原理 秦胡荟 清华大学出版社 39元
Book类
/**
* @Auther: 茶凡
* @ClassName Book
* @Description TODO
* @date 2023/6/8 17:40
* @Version 1.0
*/
public class Book {
private String isbn; // 书号
private String title; // 书名
private String author; // 作者
private String publisher; // 出版社
private double price; // 价格
public Book(String isbn, String title, String author, String publisher, double price) {
this.isbn = isbn;
this.title = title;
this.author = author;
this.publisher = publisher;
this.price = price;
}
// 获取属性值
public String getIsbn() {
return isbn;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public String getPublisher() {
return publisher;
}
public double getPrice() {
return price;
}
// 修改属性值
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public void setTitle(String title) {
this.title = title;
}
public void setAuthor(String author) {
this.author = author;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public void setPrice(double price) {
this.price = price;
}
// 重载toString()方法
@Override
public String toString() {
return "ISBN: " + isbn +
", Title: " + title +
", Author: " + author +
", Publisher: " + publisher +
", Price: " + price + "元";
}
// 重载equals()方法,用于比较书号
@Override
public boolean equals(Object obj) {
if (obj instanceof Book) {
Book other = (Book) obj;
return isbn.equals(other.isbn);
}
return false;
}
}
测试类
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/**
* @Auther: 茶凡
* @ClassName BookTest
* @Description TODO
* @date 2023/6/8 17:41
* @Version 1.0
*/
public class BookTest {
public static void main(String[] args) {
Book book1 = new Book("9787115417046", "java程序设计", "龚炳江", "人民邮电出版社", 49.8);
Book book2 = new Book("9787115417001", "C++程序设计", "张卉堰", "机械工业出版社", 29.5);
Book book3 = new Book("978713541734", "操作系统原理", "秦胡荟", "清华大学出版社", 39);
ArrayList<Book> books = new ArrayList<>();
books.add(book1);
books.add(book2);
books.add(book3);
Collections.sort(books, Comparator.comparing(Book::getPrice).reversed());
// 输出所有图书信息
for (Book book : books) {
System.out.println("书号:" + book.getIsbn() + "\t书名:" + book.getTitle()
+ "\t作者:" + book.getAuthor() + "\t出版社:" + book.getPublisher()
+ "\t价格:" + book.getPrice());
}
System.out.println(book1); // 输出book1的信息
// 修改book1的价格和出版社
book1.setPrice(50);
book1.setPublisher("人民出版社");
System.out.println(book1); // 再次输出book1的信息
System.out.println(book2); // 输出book2的信息
System.out.println(book1.equals(book2)); // 比较book1和book2的书号是否相同
System.out.println(book1.equals(book3)); // 比较book1和book3的书号是否相同
}
}
测试结果
书号:9787115417046 书名:java程序设计 作者:龚炳江 出版社:人民邮电出版社 价格:49.8
书号:978713541734 书名:操作系统原理 作者:秦胡荟 出版社:清华大学出版社 价格:39.0
书号:9787115417001 书名:C++程序设计 作者:张卉堰 出版社:机械工业出版社 价格:29.5
ISBN: 9787115417046, Title: java程序设计, Author: 龚炳江, Publisher: 人民邮电出版社, Price: 49.8元
ISBN: 9787115417046, Title: java程序设计, Author: 龚炳江, Publisher: 人民出版社, Price: 50.0元
ISBN: 9787115417001, Title: C++程序设计, Author: 张卉堰, Publisher: 机械工业出版社, Price: 29.5元
false
false