定义图书类Book,具有属性账号id,书名name、作者author 和价格price,在创建图书对象时要求通过构造器进行创建,一次性将四个属性全部赋值,要求账号属性是int型,书名是String型,作者是String型,价格是double。在创建好用户后,书名不能进行更改,只可以进行访问。其他请合理进行封装。 在Book类,添加toString方法,要求返回 图书信息字符串,使用** **隔开各信息。 定义管理类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+" name="+name+" author="+author+" price="+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(); } }
效果如何: