声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数、记录图书的总册数,在构造方法中利用此静态变量为对象的编号赋值,在主方法中定义对象数组,并求出总册数,编写测试类测试各功能
时间: 2024-10-22 11:19:05 浏览: 32
在Java中,我们可以创建一个名为`Book`的类来声明这个图书类。这里是一个简单的示例:
```java
public class Book {
private static int bookCount = 0; // 静态变量用于自动编号
private String title;
private double price;
// 构造方法,增加编号并初始化册数
public Book(String title, double price) {
this.title = title;
this.price = price;
bookCount++;
}
// 获取编号
public int getID() {
return bookCount - 1;
}
// 其他方法如获取书名和价格省略
// 静态方法计算总册数
public static int getTotalBooks() {
return bookCount;
}
}
// 主方法部分
public static void main(String[] args) {
Book[] books = new Book[3]; // 创建一个包含3本书的对象数组
for (int i = 0; i < books.length; i++) {
books[i] = new Book("Book " + (i+1), 50.99); // 设置书名和价格,自动生成编号
}
System.out.println("Total number of books: " + Book.getTotalBooks()); // 输出总册数
}
```
现在我们有了一个`Book`类,它可以动态生成编号并跟踪总数。测试类`TestBook`可以用来验证这些功能,包括创建实例、获取编号和检查总册数。以下是`TestBook`的一个简单版本:
```java
public class TestBook {
public static void test(Book[] books) {
for (Book book : books) {
System.out.println("Book ID: " + book.getID());
}
System.out.println("Expected total books: " + books.length);
System.out.println("Actual total books: " + Book.getTotalBooks());
}
public static void main(String[] args) {
Book[] books = ... // 使用上面main方法创建的书籍数组
test(books);
}
}
```
阅读全文