题目:设计一个Java程序,实现一个简单的图书管理系统。要求如下:
- 创建一个
Book
类,包含图书的标题、作者和ISBN编号。 - 在
Book
类中,提供一个构造方法来初始化图书对象,并设置和获取图书的属性。 - 创建一个
Library
类,用于存储和管理Book
对象。Library
类应包含一个ArrayList
来存储图书,并提供方法来添加、删除、查找和显示所有图书。 -
Library
类还应该有一个方法来计算图书馆中图书的总数量。 - 在主类中,创建一个
Library
对象,并添加一些图书。然后演示如何添加、删除、查找图书以及计算图书总数量。 - 扩展功能:为
Library
类添加一个方法,根据书名或作者搜索图书,并返回匹配的图书列表。
示例代码及解释:
import java.util.ArrayList;
// Book类定义
class Book {
private String title; // 图书标题
private String author; // 作者
private String isbn; // ISBN编号
// Book类的构造方法
public Book(String title, String author, String isbn) {
this.title = title;
this.author = author;
this.isbn = isbn;
}
// 设置和获取图书标题的方法
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return this.title;
}
// 设置和获取作者的方法
public void setAuthor(String author) {
this.author = author;
}
public String getAuthor() {
return this.author;
}
// 设置和获取ISBN编号的方法
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getIsbn() {
return this.isbn;
}
}
// Library类定义
class Library {
private ArrayList<Book> books; // 存储图书的ArrayList
// Library类的构造方法
public Library() {
this.books = new ArrayList<>();
}
// 添加图书的方法
public void addBook(Book book) {
this.books.add(book);
}
// 删除图书的方法
public void removeBook(Book book) {
this.books.remove(book);
}
// 查找图书的方法
public Book findBookByTitle(String title) {
for (Book book : this.books) {
if (book.getTitle().equalsIgnoreCase(title)) {
return book;
}
}
return null;
}
// 显示所有图书的方法
public void displayAllBooks() {
for (Book book : this.books) {
System.out.println("Title: " + book.getTitle() + ", Author: " + book.getAuthor() + ", ISBN: " + book.getIsbn());
}
}
// 计算图书总数量的方法
public int countTotalBooks() {
return this.books.size();
}
// 根据书名或作者搜索图书的方法
public ArrayList<Book> searchBooks(String keyword) {
ArrayList<Book> matchingBooks = new ArrayList<>();
for (Book book : this.books) {
if (book.getTitle().contains(keyword) || book.getAuthor().contains(keyword)) {
matchingBooks.add(book);
}
}
return matchingBooks;
}
}
// 主类
public class Main {
public static void main(String[] args) {
// 创建Library对象
Library library = new Library();
// 添加图书
Book book1 = new Book("The Catcher in the Rye", "J.D. Salinger", "9780316769488");
Book book2 = new Book("To Kill a Mockingbird", "Harper Lee", "9780060935467");
library.addBook(book1);
library.addBook(book2);
// 查找图书
Book foundBook = library.findBookByTitle("To Kill a Mockingbird");
if (foundBook != null) {
System.out.println("Found book: " + foundBook.getTitle());
} else {
System.out.println("Book not found");
}
// 删除图书
library.removeBook(book1);
// 显示所有图书
System.out.println("Displaying all books:");
library.displayAllBooks();
// 计算图书总数量
System.out.println("Total number of books: " + library.countTotalBooks());
// 根据书名或作者搜索图书
ArrayList<Book> matchingBooks = library.searchBooks("Lee");
System.out.println("Matching books:");
for (Book book : matchingBooks) {
System.out.println("Title: " + book.getTitle() + ", Author: " + book.getAuthor() + ", ISBN: " + book.getIsbn());
}
}
}
解释:
- 我们首先定义了一个
Book
类,它有三个私有属性:title
(标题),author
(作者)和isbn
(ISBN编号)。这个类提供了构造方法以及设置和获取这些属性的方法。 - 然后我们定义了一个
Library
类,它有一个ArrayList<Book>
类型的私有属性books
,用于存储图书。这个类提供了添加、删除、查找、显示所有图书、计算图书总数量以及根据书名或作者搜索图书的方法。 - 在
Main
类的main
方法中,我们创建了一个Library
对象,并添加了两本图书。然后我们演示了如何添加、删除、查找图书,显示所有图书,计算图书总数量以及根据书名或作者搜索图书。