7-8 声明图书类,记录图书总册数,利用静态变量赋值。 (10分)

声明类=类的定义

如何利用静态变量实现自动编号?
在构造函数里写count++语句,每创建一个对象就+1

private关键字:私有(只在本类生效)

定义静态成员变量格式:
private static 数据类型 数据名

static变量:全局,初始值0

方法定义:
public 返回值 函数名(参数){ }

对象名.方法名();
你问我为什么不传数据进去就知道是什么数据了?你反思下自己你创造对象的时候是不是玩的是有参构造?

### 回答1: 下面是一个示例代码: ```java public class Book { private static int nextId = 1; // 下一个可用的编号 private static int totalBooks = 0; // 图书册数 private String title; // 书名 private int id; // 编号 private double price; // 书价 public Book(String title, double price) { this.title = title; this.id = nextId++; // 利用静态变量实现自动编号 this.price = price; totalBooks++; } // getter 和 setter 方法省略... public static int getTotalBooks() { return totalBooks; } } ``` 在上面的示例代码中,我们定义了一个 `Book` ,其数据成员包括 `title`、`id`、`price`,分别表示书名、编号和书价。`nextId` 和 `totalBooks` 都是静态变量,分别表示下一个可用的编号和图书册数。在构造方法中,我们利用 `nextId` 为对象的编号赋值,并且将 `totalBooks` 加一,表示又增加了一册图书。 注意,在这个示例代码中,我们只提供了一个静态方法 `getTotalBooks()` 来访问静态变量 `totalBooks`,而没有提供访问静态变量 `nextId` 的方法。这是因为我们不希望外部直接访问 `nextId`,而只希望通过 `Book` 的构造方法来为对象的编号赋值。 ### 回答2: 声明一个图书,其数据成员包括书名、编号、书价,并拥有静态数据成员册数记录图书册数。在构造方法中利用静态变量为对象的编号赋值。 ```python class Book: # 静态数据成员 total_books = 0 # 册数 def __init__(self, book_name, book_price): self.book_name = book_name self.book_price = book_price # 静态变量自动编号 Book.total_books += 1 self.book_number = Book.total_books def display_info(self): print("书名:", self.book_name) print("编号:", self.book_number) print("书价:", self.book_price) # 示例代码 book1 = Book("《Python编程入门》", 49.9) book2 = Book("《Java从入门到精通》", 59.9) book3 = Book("《数据结构与算法分析》", 69.9) book1.display_info() # 输出书籍信息 book2.display_info() book3.display_info() print("当前图书册数:", Book.total_books) ``` 该图书具有一个静态数据成员`total_books`用于记录图书册数,初始值为0。在构造方法内,通过静态变量自动编号的方式为每本图书对象的`book_number`赋值,并通过递增操作使`total_books`增加。这样可以确保每本图书的编号是唯一的。 示例代码实例化了3个图书对象(book1、book2和book3),并分别显示了每本书的书名、编号和书价。最后,打印了当前图书册数。 ### 回答3: 图书声明如下: ```java public class Book { private String title; // 书名 private int number; // 编号 private double price; // 书价 private static int count = 0; // 静态数据成员册数,用于自动编号 private static int totalBooks = 0; // 静态数据成员记录图书册数 public Book(String title, double price) { this.title = title; this.price = price; count++; // 自动编号加1 number = count; totalBooks++; // 册数加1 } // Getter和Setter方法省略 public static int getTotalBooks() { return totalBooks; } } ``` 在上述代码中,Book定义了私有的数据成员title、number和price,分别表示图书的书名、编号和价格。静态数据成员count用于实现自动编号,它在每次构造一个新的图书对象时加1,并将这个值赋给对象的number属性。静态数据成员totalBooks用于记录图书册数,在每次构造一个新的图书对象时加1。 构造方法Book(String title, double price)接受图书的书名和价格作为参数,并根据传入的参数和静态变量count为对象的title、price和number属性赋值。其中,count的自增操作将会确保每个图书对象的编号是唯一的。 最后,通过静态方法getTotalBooks()可以获得图书册数totalBooks。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值