黑马程序员技术交流社区
标题:
面向对象改写day07的猜数字小游戏
[打印本页]
作者:
cjwhale
时间:
2016-1-23 22:16
标题:
面向对象改写day07的猜数字小游戏
本帖最后由 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的内容.
作者:
zhenufo
时间:
2016-1-23 22:20
我来顶一下
作者:
cjwhale
时间:
2016-1-23 22:23
zhenufo 发表于 2016-1-23 22:20
我来顶一下
别水啦, 多敲代码.
作者:
alwayszhao
时间:
2016-1-23 22:24
矮油不错哦 我也准备做一个
作者:
zhenufo
时间:
2016-1-23 22:24
cjwhale 发表于 2016-1-23 22:23
别水啦, 多敲代码.
水水更健康
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2