定義圖書類Book,具有屬性賬號id,書名name、作者author 和價格price,在創建圖書對象時要求通過構造器進行創建,一次性將四個屬性全部賦值,要求賬號屬性是int型,書名是String型,作者是String型,價格是double。在創建好用戶后,書名不能進行更改,只可以進行訪問。其他請合理進行封裝。 在Book類,添加toString方法,要求返回 圖書信息字符串,使用**\t**隔開各信息。 定義管理類Manager,定義添加圖書的方法add、按書名修改價格的方法 update、按照賬號刪除圖書的方法delete、按賬號查詢圖書的方法query 要求返回Book類型、按作者查詢的圖書的方法 query 要求返回Book類型、查詢所有圖書的方法 showAll、按價格降序排序方法 sort。
參考代碼:
Book.java:文件 public class Book { private int id; private String name; private String author; private double price; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Book(int id, String name, String author, double price) { this.id = id; this.name = name; this.author = author; this.price = price; } @Override public String toString() { return "Book{id="+id+"\tname="+name+"\tauthor="+author+"\tprice="+price+"}"; } }
Manager.java:文件 public class Manager { //定義一個集合來存儲圖書信息 private ArrayList<Book> list = new ArrayList<>(); /** * 添加圖書 * @param book */ public void add(Book book){ list.add(book); } /** * 修改--根據書名修改價格 * @param name * @param price */ public void update(String name,double price){ for (int i = 0; i < list.size(); i++) { Book book = list.get(i); if (name.equals(book.getName())){ book.setPrice(price); System.out.println("修改成功:"+book); } } } /** * 根據id刪除圖書 * @param id */ public void delete(int id){ for (int i = 0; i < list.size(); i++) { Book book = list.get(i); if (id==book.getId()){ list.remove(book); System.out.println("刪除成功"); } } } /** * 查詢--根據id查詢圖書信息 * @param id */ public Book query(int id){ for (int i = 0; i < list.size(); i++) { Book book = list.get(i); if (id==book.getId()){ System.out.println(book); return book; } } return null; } /** * 查詢--根據圖書名稱查詢圖書信息 * @param name */ public Book query(String name){ for (int i = 0; i < list.size(); i++) { Book book = list.get(i); if (name.equals(book.getName())){ System.out.println(book); return book; } } return null; } /** * 展示所有圖書信息 */ public void showAll(){ for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } /** * 按照價格降序排序 */ public void sort(){ Collections.sort(list, new Comparator<Book>() { @Override public int compare(Book o1, Book o2) { return -(int)(o1.getPrice()-o1.getPrice()); } }); } }
Test.java:文件 public static void main(String[] args) { //實例manager對象 Manager manager = new Manager(); //添加書籍 manager.add(new Book(1,"三國演義","羅貫中",97.5)); manager.add(new Book(2,"水滸傳","施耐庵",67)); manager.add(new Book(3,"西游記","吳承恩",76)); manager.add(new Book(4,"紅樓夢","曹雪芹",50)); manager.add(new Book(5,"小說","蘭陵笑笑生",25)); //根據id查詢圖書 manager.query(03); //根據圖書名稱查詢 manager.query("三國演義"); //根據名稱修改價格 manager.update("小說",55); //刪除圖書 manager.delete(5); //排序 manager.sort(); manager.showAll(); } }
效果如何: