题目.md 3.0 KB

第 9 题:构造方法 + 封装 + 对象数组 + 排序——BookManager ⭐⭐⭐⭐

包名:p09_bookmanager

图书类(类名自拟,置于 p09_bookmanager 包下)

  • 私有属性:id(编号,int)、title(书名,String)、price(价格,double)
  • 全参构造方法
  • getter/setter

管理类(类名自拟,置于 p09_bookmanager 包下)

包含以下方法:

方法 说明
initBooks() 创建并返回一个包含 5 本图书 的数组(使用全参构造初始化)
printBooks(图书数组类型 books) 遍历输出所有图书信息
sortByPrice(图书数组类型 books) 按价格从高到低排序(冒泡排序)
searchByTitle(图书数组类型 books, String title) 根据书名查找图书,返回找到的图书对象(找不到返回 null)

测试类要求(测试类类名自拟,置于 p09_bookmanager 包下)

  1. 调用 initBooks() 初始化图书数组
  2. 调用 printBooks() 输出原始顺序
  3. 调用 sortByPrice() 排序后再次输出
  4. 调用 searchByTitle() 查找某本书,输出查找结果

示例数据:

new 图书类(1001, "Java从入门到精通", 79.0)
new 图书类(1002, "数据结构与算法", 65.0)
new 图书类(1003, "设计模式之禅", 58.0)
new 图书类(1004, "深入理解JVM", 89.0)
new 图书类(1005, "计算机网络", 45.0)

示例运行效果:

========== 原始顺序 ==========
编号:1001,书名:Java从入门到精通,价格:79.0
编号:1002,书名:数据结构与算法,价格:65.0
编号:1003,书名:设计模式之禅,价格:58.0
编号:1004,书名:深入理解JVM,价格:89.0
编号:1005,书名:计算机网络,价格:45.0

========== 按价格从高到低排序 ==========
编号:1004,书名:深入理解JVM,价格:89.0
编号:1001,书名:Java从入门到精通,价格:79.0
编号:1002,书名:数据结构与算法,价格:65.0
编号:1003,书名:设计模式之禅,价格:58.0
编号:1005,书名:计算机网络,价格:45.0

========== 查找图书 ==========
查找 "设计模式之禅":
  找到了!编号:1003,价格:58.0

查找 "操作系统":
  未找到该图书!

💡 提示:

  • initBooks() 是无参有返回值方法,在方法内部创建数组并返回
  • 冒泡排序中比较价格时,使用 > 进行降序排列(从高到低)
  • searchByTitle() 使用 equals() 或 equalsIgnoreCase() 比较书名
  • 管理类的方法都是实例方法,测试类中需先创建管理类对象再调用