我正在尝试为我的朋友做一个模拟的骰子滚动游戏。我想利用两个类Dice和一个子类VarDice,它可以让用户选择多少边。然而,我正在努力让我的派生类正常工作。
这是我的父类:
import java.util.Random;
public class Dice {
protected int numRolled;
final Random rand = new Random();
public void roll() {
numRolled = rand.nextInt(5) + 1;
}
public int getNumRolled() {
return numRolled;
}
}
这是一个派生类:
import java.util.Random;
public class VarDice extends Dice {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int numSides;
public void setNumSides(int sides) {
numSides = sides;
}
public int getNumSides() {
return numSides;
}
@Override
public void roll() {
numRolled = rand.nextInt(numSides) + 1;
}
}
}
最后是我的主要代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int numSides;
VarDice dice = new VarDice();
numSides = scar.nextInt();
dice.setNumSides(numSides);
dice.roll();
System.out.println("The dice come up " + dice.getNumRolled());
}
}
我希望用户能够输入骰子有多少面以及有多少个骰子,但是我的VarDice类没有很好地覆盖roll方法,并且我对我得到的错误有点迷失......我感谢帮助并希望格式是适当的。
2条答案
按热度按时间ar7v8xwq1#
这里有一些问题:
VarDice
的代码在一个不属于这里的main
方法中。1.正如@Bohemian在评论中指出的那样,在这里,你并不需要两个继承的类。我会删除父类,因为默认情况下6边可以由默认构造函数处理。
1.是的,@Bohemian,“Dice”是“Die”的复数。
你的
Die
类可能看起来像这样:你可以在你的应用程序中使用这个类:
tvokkenx2#
我注意到的几个错误:
线
numSides = scar.nextInt();
应该是numSides = scnr.nextInt();
类VarDice已经将所有内容 Package 在
public static void main(String[] args) {...}
中。删除此 Package 以确保代码是类的一部分,而不是方法的一部分。有了这些变化,代码为我工作。