A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 cjwhale 于 2016-1-23 22:16 编辑

    基础班day07最后有一个猜数字小游戏案例, 但是明明一整天讲的都是面向对象的内容, 最后的案例里面却没有用到面向对象的思想.
    晚自习用已学的一些java知识, 重新改写了这个小游戏. 代码如下:        
  1. import java.util.Scanner;

  2. // 测试类, 包括main方法
  3. class Test {
  4.     public static void main(String[] args) {
  5.         Scanner sc = new Scanner(System.in);
  6.         System.out.println("请输入一个 1 - 100 之间的整数: ");
  7.         // 将游戏视为一个对象, 因此只要简单的告诉
  8.         // guessNum()一个整数就可以了
  9.         while (!AGame.guessNum(sc.nextInt())) ;
  10.     }
  11. }

  12. // 游戏类
  13. class AGame {
  14.     // 三个私有的静态成员变量, num表示随机生成的数字
  15.     // leftNum, rightNum 用来提示num的范围.
  16.     private static int num = (int)(Math.random() * 100) + 1;
  17.     private static int leftNum = 1, rightNum = 100;
  18.     // 私有化构造方法, 禁止其他类实例化该类的对象.
  19.     private AGame() {}
  20.     // 传入一个整数, 猜中则返回true, 否则返回false, 并在屏幕
  21.     // 打印 num 的范围.
  22.     public static boolean guessNum(int result) {
  23.         if (result > num)
  24.             rightNum = result;
  25.         else if (result < num)
  26.             leftNum = result;
  27.         else {
  28.             System.out.println("恭喜你! 猜中了");
  29.             return true;
  30.         }
  31.         System.out.println("在 " + leftNum + " - " + rightNum + " 之间. ");
  32.         return false;
  33.     }
  34. }
复制代码
   通过 private 和 static 关键字, 将 AGame 类封装起来, 对外只提供一个 guessNum() 方法, 这样这个猜数字小游戏案例才能更符合day07的内容.

4 个回复

倒序浏览
我来顶一下
回复 使用道具 举报

别水啦, 多敲代码.
回复 使用道具 举报
矮油不错哦 我也准备做一个
回复 使用道具 举报
cjwhale 发表于 2016-1-23 22:23
别水啦, 多敲代码.

水水更健康
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马