【发布时间】:2014-02-18 22:40:04
【问题描述】:
我们的 CS 类被分配来编写一个程序,该程序将两个 java 对象导入到一个应该返回一组骰子的面值的类中。 Die 类生成一个随机数并将该值打印到屏幕上。 testDie 类导入两个骰子对象数组,其中一个有 6 面,另一个有 15 面。程序只打印出 6 面骰子的值(顺便说一句,它是骰子数组),不打印其他 15 面骰子.有人可以向我解释我做错了什么吗?谢谢。
以下是我的Die类,生成随机面值
import java.util.Random;
public class Die {
int face; //current value of the face of the die object
int numSides; //number of sides of the die object
Random ran = new Random();
Random ran2 = new Random();
public Die(){//default constructor
int numSides = 0;
int face = 0;
}
public Die (int sides){
sides = numSides;
face = 0;
setSides();
}
private void setSides() {
if(numSides > 6)
face = roll2();
if(numSides <= 6)
face = roll();
}
public int getFace(){
return face;
}
public int getNumSides(){
return numSides;
}
public int roll(){
return face = ran.nextInt(6) +1; //generates a random number between 1 and 6.
}
public int roll2(){
return face = ran2.nextInt(20) + 7; // generates a random number between 7 and 20.
}
public String toString(){
return Integer.toString(face);
}
}
这段代码创建了两个骰子对象并将其打印到屏幕上。
public class TestDie extends Die {
public static void main(String[] args) {
Die[] dieobject = new Die[3];
for (int i=0; i< dieobject.length; i++)
{
dieobject[i] = new Die(6); // a die with 6 sides
}
for (int i=0; i<dieobject.length; i++) // prints out the 3 dice face values
{
System.out.println("The value of die " + (i+1) + " is " + dieobject[i].toString());
}
Die[] dieobject2 = new Die[3];
for (int i=0; i< dieobject2.length; i++)
{
dieobject2[i] = new Die(15); // a die with 15 sides
}
for (int i=0; i<dieobject2.length; i++) // prints out the 3 dice face values
{
System.out.println("The value of die " + (i+1) + " is " + dieobject2[i].toString());
}
}
}
抱歉,格式不佳。我是这个网站的新手。任何帮助将不胜感激。
【问题讨论】:
-
与其为糟糕的格式道歉,不如看看formatting help site。
-
您还错误地使用了“导入”一词。在Java中,它特指在另一个包中找到一个类,并将其映射到当前文件,这样就可以使用它的短名称,这样就可以说
import java.util.Map,之后就可以使用Map了。 -
TestDie 为什么要扩展 Die?
-
return face = ran2.nextInt(20) + 7; // generates a random number between 7 and 20
标签: java arrays class object constructor