## 第 8 题:构造方法 + Random + 方法——猜数游戏(面向对象版)⭐⭐⭐⭐ **包名**:`p08_guessgame` 将之前的猜数字游戏改造为**面向对象版本**,使用构造方法初始化游戏。 ### 游戏类(类名自拟,置于 `p08_guessgame` 包下) **私有属性**: | 属性 | 类型 | 说明 | | ---------- | ---- | ----------------------------- | | `target` | int | 目标数字(系统随机生成) | | `maxRange` | int | 最大范围(如 100 表示 1~100) | | `attempts` | int | 已猜次数 | **构造方法**:`类名(int maxRange)` —— 在 `1 ~ maxRange` 之间用 Random 生成目标数字,并将 `attempts` 初始化为 0 **方法**: | 方法 | 说明 | | ---------------- | ------------------------------------------------------------ | | `guess(int num)` | 判断猜测结果,返回 `String`:`"猜对了!"` / `"大了,再小点"` / `"小了,再大点"` | | `getAttempts()` | 返回已猜次数(int) | ### 测试类要求(测试类类名自拟,置于 `p08_guessgame` 包下) 1. 创建游戏对象,范围 1~100 2. 使用 `Scanner` 让用户循环输入猜测数字 3. 调用 `guess()` 方法判断,直到猜对为止 4. 猜对后输出总共猜了多少次 **示例运行效果**: ``` ======= 猜数游戏(1~100) ======= 请输入你猜的数字:50 小了,再大点 请输入你猜的数字:75 大了,再小点 请输入你猜的数字:62 小了,再大点 请输入你猜的数字:68 猜对了! 恭喜你!一共猜了 4 次 ``` > 💡 **提示**: > > - 构造方法中使用 `Random` 的 `nextInt(maxRange) + 1` 生成 1~maxRange 的随机数 > - `guess()` 方法中每次调用时 `attempts` 自增 1 > - 测试类中使用 `while(true)` 循环,猜对时 `break`