项目案例:QuickHit:需求分析
主讲教师:王少华 QQ群号:483773664
学习目标
学会用面向对象思想来进行需求分析
一、需求
- 根据输入速率和正确率将玩家分为不同级别
- 级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高
- 规定时间内完成规定次数的输入,正确率达到规定要求,则升级
- 玩家最高级别为6级、初始级别一律为1级
- 用户错误输入一次,游戏结束
二、面向对象分析
(一) 发现类
- 玩家(Player)类
- 游戏(Game)类
- 级别(Level)类
(二)发现类的属性
1、玩家类(Player)的属性
- 玩家当前级别号(levelNo)
- 玩家当前级别积分(currScore)
- 当前级别开始时间(startTime)
- 当前级别已用时间(elapsedTime)
2、级别类(Level)的属性
- 各级别号(levelNo)
- 各级别一次输出字符串的长度(strLength)
- 各级别输出字符串的次数(strTimes)
- 各级别闯关的时间限制(timeLimit)
- 各级别正确输入一次的得分(perScore)
3 、游戏类(Game)
没有属性,只有方法
(三)发现类行为
1、玩家类(Player)
玩游戏:play()
2 、游戏类
- String printStr():输出字符串,返回字符串用于和玩家输入比较
- void printResult(String out,String in):比较游戏输出Out和玩家输入in,根据比较结果输出相应信息
(四)优化设计
1 修改游戏类(Game),添加属性
玩家:player
2 添加类 LevelParam:用于存储级别常量
public final static Level level[6]
三、游戏Demo的演示
四、类的编写
(一) Player
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
(二) Level
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
(三)Game
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
(四)LevelParam
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
五、初始化各级别的参数
(一)、难点提示
1 使用static修饰属性和代码块
- static属性
属于这个类所有
通过“对象名.static属性名” 、“类名.static属性名” 访问
- static方法
通过“类名.static方法名”和“对象名.static方法名” 访问
- static代码块
主要作用是实现static属性的初始化
当类被载入的时候执行它,且只被执行一次