java面向对象相关练习题
时间: 2024-09-13 12:03:26 浏览: 51
在Java中,面向对象编程(OOP)是一个核心概念,涵盖了类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)、多态(Polymorphism)等关键特性。以下是一个关于Java面向对象概念的练习题:
**练习题:**
假设你需要设计一个简单的图书管理系统,该系统需要记录图书信息并且能够对这些图书信息进行增加、删除、查询和显示的操作。请使用Java面向对象的原则来设计这个系统,并完成以下任务:
1. 定义一个`Book`类,包含至少三个属性,例如书名、作者和ISBN号。
2. 在`Book`类中定义一个方法`printBookInfo()`用于打印图书的详细信息。
3. 创建一个`Library`类,包含一个`Book`对象的集合,实现以下功能:
- 添加图书(`addBook`)
- 删除图书(`removeBook`)
- 根据ISBN查找图书(`findBookByISBN`)
- 打印图书馆中所有图书的信息(`printAllBooks`)
4. 在`main`方法中创建`Library`对象,并对其进行测试,确保所有的功能都能正常工作。
**解答:**
首先,我们定义一个`Book`类,包含三个属性:书名(`name`)、作者(`author`)、ISBN号(`isbn`),以及一个方法`printBookInfo()`用于打印信息。
```java
public class Book {
private String name;
private String author;
private String isbn;
public Book(String name, String author, String isbn) {
this.name = name;
this.author = author;
this.isbn = isbn;
}
public void printBookInfo() {
System.out.println("书名: " + name + ", 作者: " + author + ", ISBN: " + isbn);
}
}
```
接下来,我们定义一个`Library`类,它包含一个`Book`对象的列表,并提供相应的操作方法。
```java
import java.util.ArrayList;
import java.util.List;
public class Library {
private List<Book> books;
public Library() {
books = new ArrayList<>();
}
public void addBook(Book book) {
books.add(book);
}
public void removeBook(String isbn) {
books.removeIf(book -> book.isbn.equals(isbn));
}
public Book findBookByISBN(String isbn) {
return books.stream()
.filter(book -> book.isbn.equals(isbn))
.findFirst()
.orElse(null);
}
public void printAllBooks() {
books.forEach(Book::printBookInfo);
}
}
```
最后,在`main`方法中测试`Library`类的功能:
```java
public class Main {
public static void main(String[] args) {
Library library = new Library();
// 添加图书
library.addBook(new Book("Java编程思想", "Bruce Eckel", "1234567890"));
library.addBook(new Book("Effective Java", "Joshua Bloch", "0987654321"));
// 打印所有图书信息
library.printAllBooks();
// 删除一本书
library.removeBook("1234567890");
// 查找一本书
Book book = library.findBookByISBN("0987654321");
if (book != null) {
book.printBookInfo();
}
// 再次打印所有图书信息,确认删除操作
library.printAllBooks();
}
}
```
通过这个练习题,可以加深对Java面向对象编程的理解,包括如何定义类、创建对象、以及如何使用方法来操作这些对象。
阅读全文