我的任务是使用Java创建一个相当简单的基于骰子的棋盘游戏。我已经在构造函数中初始化了所有骰子对象,但是当我尝试从游戏类中的骰子类中获取方法时,我得到的错误(对象名称)无法解析。请原谅我,如果这个解释不清楚,但希望代码更有意义。在qwixx类的rollDice()方法中遇到错误。
public class qwixx {
public qwixx() {
dice white1 = new dice();
dice white2 = new dice();
dice red = new dice();
dice yellow = new dice();
dice green = new dice();
dice blue = new dice();
}
public void rollDice() {
white1.rollDice();
white2.rollDice();
red.rollDice();
yellow.rollDice();
green.rollDice();
blue.rollDice();
}
}
public class dice {
String colour;
int currentSide;
public dice() {
colour = "white";
rollDice();
}
public int rollDice() {
currentSide = (int)(Math.random() * 6 + 1);
return currentSide;
}
}
答案 0 :(得分:1)
构造函数中的所有变量必须在类级别声明。
public class qwixx {
// declare the dice variables at the class level (as 'fields')
dice white1;
// same for other dice : declare them here
public qwixx() {
// in the constructor you actually create the object and assign references to the class variables
white1 = new dice();
// idem for others
}
}
了解班级中的所有方法如何能够访问这些字段。
否则,你的骰子引用只会在声明它们的方法中,在构造函数中可见,当然这不是你想要的,以及你的错误原因。