BookManager.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package homework.p09_bookmanager;
  2. /**
  3. * @author WanJl
  4. * @version 1.0
  5. * @title BookManager
  6. * @description 管理类
  7. * @create 2026/7/22
  8. */
  9. public class BookManager {
  10. /**
  11. * 创建并返回一个包含 5 本图书 的数组(使用全参构造初始化)
  12. * @return
  13. */
  14. public Book[] initBooks(){
  15. //创建5个图书对象
  16. Book b1=new Book(1001,"Java从入门到精通",79.0);
  17. Book b2=new Book(1002,"数据结构与算法",65.0);
  18. Book b3=new Book(1003,"设计模式之禅",58.0);
  19. Book b4=new Book(1004,"深入理解JVM",89.0);
  20. Book b5=new Book(1005,"计算机网络",45.0);
  21. //创建一个长度为5的图书数组---静态初始化
  22. Book[] books={b1,b2,b3,b4,b5};
  23. //返回数组
  24. return books;
  25. }
  26. /**
  27. * 遍历输出所有图书信息
  28. * @param books
  29. */
  30. public void printBooks(Book[] books){
  31. for(Book b:books){
  32. System.out.println("编号:"+b.getId()+",书名:"+b.getTitle()+",价格:"+b.getPrice());
  33. }
  34. }
  35. /**
  36. * 按价格从高到低排序(冒泡排序)
  37. * @param books
  38. */
  39. public void sortByPrice(Book[] books){
  40. //外层循环
  41. for (int i = 0; i < books.length-1; i++) {
  42. //内层循环
  43. for (int j = 0; j < books.length-1-i; j++) {
  44. //注意:不是直接笔记book对象,而是笔记book的价格属性
  45. if (books[j].getPrice()<books[j+1].getPrice()){
  46. Book tempBook=books[j];
  47. books[j]=books[j+1];
  48. books[j+1]=tempBook;
  49. }
  50. }
  51. }
  52. }
  53. /**
  54. * 根据书名查找图书,返回找到的图书对象(找不到返回 null)
  55. * @param books
  56. * @param title
  57. * @return
  58. */
  59. public Book searchByTitle(Book[] books, String title){
  60. for (Book b:books){
  61. if (b.getTitle()==title){
  62. return b;
  63. }
  64. }
  65. return null;
  66. }
  67. }