//图书类
public class Book {
private int id;//编号
private String name;//书名
private double price;//价格
private int storage;//库存
public Book() {
}
public Book(int id, String name, int price, int storage) {
this.id = id;
this.name = name;
this.price = price;
this.storage = storage;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStorage() {
return storage;
}
public void setStorage(int storage) {
this.storage = storage;
}
}
//订单项类(订单的属性)
public class OrderItem {
private Book book;//图书类的书名
private int num;//购买的数量
public OrderItem() {
}
public OrderItem(Book book, int num) {
this.book = book;
this.num = num;
}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
//订单类
public class Order {
private String orderId;//订单序号
private double total;//总金额
private OrderItem[] items = new OrderItem[3];//订单项数组(三个订单项)
public Order() {
}
public Order(String orderId) {
this.orderId = orderId;
}
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public double getTotal() {
for (int i = 0; i < items.length; i++) {
total += items[i].getNum() * items[i].getBook().getPrice();//总金额:数量*每本书的价格
}
this.total = total;
return total;
}
public void setTotal(double total) {
}
public OrderItem[] getItems() {
return items;
}
public void setItems(int i, OrderItem item) {
items[i] = item;
}
}
//测试类
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
Book[] books=new Book[3];
//调用打印图书信息的方法
printBooks(books);
//调用购买图书的方法
Order order =buy(books);
//打印订单信息
printInfo(order);
}
private static void printInfo(Order order) {
System.out.println("订单编号:"+order.getOrderId());
System.out.println("图书名称\t图书单价\t购买数量");
OrderItem[] items=order.getItems();
for (int i = 0; i < items.length; i++) {
System.out.println(items[i].getBook().getName()+"\t"+items[i].getBook().getPrice()+"\t"+items[i].getNum());
}
System.out.println("-------------------------");
System.out.println("总金额:"+order.getTotal());
}
private static Order buy(Book[] books) {
Order order=new Order("001");
Scanner sc=new Scanner(System.in);
for (int i = 0; i < books.length; i++) {
System.out.println("请输入图书的编号:");
int id=sc.nextInt();
System.out.println("请输入购买的数量:");
int num=sc.nextInt();
OrderItem item=new OrderItem(books[id-1],num);
order.setItems(i,item);
}
return order;
}
private static void printBooks(Book[]books){
books[0]=new Book(1,"Crown",10,10);
books[1]=new Book(2,"Read",20,5);
books[2]=new Book(3,"Go on",22,30);
System.out.println("图书编号\t图书名称\t图书单价\t图书库存");
for(int i=0;i<books.length;i++){
Book b=books[i];
System.out.println(b.getId()+"\t\t"+b.getName()+"\t"+b.getPrice()+"\t\t"+b.getStorage());
}
}
}
结果展示:
主要考察创建类和成员变量的调用