【发布时间】:2012-05-28 13:34:45
【问题描述】:
我正在使用 OOP 创建一个简单的保龄球游戏,我想为每个保龄球创建一个类,一个由两个碗组成的 Frame 类和一个由十个帧组成的 Game 类。
目前我有这样的事情
碗.java
public class Bowl {
int bowlScore = 0;
public Bowl(int pinsKnocked){
bowlScore = pinsKnocked;
}
}
Frame.java
public class Frame{
int firstScore;
int secondScore;
public Bowl firstBowl;
public Bowl secondBowl;
public Frame (){
firstBowl = new Bowl(0);
secondBowl = new Bowl(0);
}
public Frame (int firstScore, int secondScore){
firstBowl = new Bowl(firstScore);
secondBowl = new Bowl(secondScore);
}
Game.java
public class Game {
int totalScore;
public Frame firstFrame;
public Frame secondFrame;
...
public Frame tenthFrame;
public Game(){
firstFrame = new Frame();
}
public Game(Frame f){
firstFrame = f;
}
这是使用 OOP 功能的正确方法吗?或者我该如何改进?
【问题讨论】:
-
当我掷出 2 次打击时,第 10 帧会发生什么?
-
我建议使用封装,将所有字段标记为私有/受保护(根据需要)访问类型,并提供getter/setter(根据需要)访问字段。
-
@Nix - 我还没有到第 10 帧,我只是想了解所有类如何协同工作以及它们如何相互访问,然后再进入游戏的细节
-
值得一读:Test Driven Development: By Example Kent Beck。这个例子是一个保龄球游戏:)
-
为什么不创建一个框架和碗的
array?这样你就没有一堆命名字段。