本帖最后由 cjwhale 于 2016-1-23 22:16 编辑
基础班day07最后有一个猜数字小游戏案例, 但是明明一整天讲的都是面向对象的内容, 最后的案例里面却没有用到面向对象的思想.
晚自习用已学的一些java知识, 重新改写了这个小游戏. 代码如下: - import java.util.Scanner;
- // 测试类, 包括main方法
- class Test {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入一个 1 - 100 之间的整数: ");
- // 将游戏视为一个对象, 因此只要简单的告诉
- // guessNum()一个整数就可以了
- while (!AGame.guessNum(sc.nextInt())) ;
- }
- }
- // 游戏类
- class AGame {
- // 三个私有的静态成员变量, num表示随机生成的数字
- // leftNum, rightNum 用来提示num的范围.
- private static int num = (int)(Math.random() * 100) + 1;
- private static int leftNum = 1, rightNum = 100;
- // 私有化构造方法, 禁止其他类实例化该类的对象.
- private AGame() {}
- // 传入一个整数, 猜中则返回true, 否则返回false, 并在屏幕
- // 打印 num 的范围.
- public static boolean guessNum(int result) {
- if (result > num)
- rightNum = result;
- else if (result < num)
- leftNum = result;
- else {
- System.out.println("恭喜你! 猜中了");
- return true;
- }
- System.out.println("在 " + leftNum + " - " + rightNum + " 之间. ");
- return false;
- }
- }
复制代码 通过 private 和 static 关键字, 将 AGame 类封装起来, 对外只提供一个 guessNum() 方法, 这样这个猜数字小游戏案例才能更符合day07的内容.
|
|