Java 将随机数传递到对象的实例中
我的家庭作业是让我做一个数学游戏,在这个游戏中,我提示用户回答数学问题,然后向他们展示答案。我已经创建了Java 将随机数传递到对象的实例中,java,variables,math,random,Java,Variables,Math,Random,我的家庭作业是让我做一个数学游戏,在这个游戏中,我提示用户回答数学问题,然后向他们展示答案。我已经创建了MathGame类,但是当我创建MathGame的实例时,它要求我输入两个整数,我不知道,因为我试图随机生成它们 问题:如何将类中的随机数传递到MathGame的实例中 下面是MathGame类 下面是我想弄清楚的MathGame实例的主要部分 import java.util.Random; public class MathGame { private int operand1
MathGame
类,但是当我创建MathGame
的实例时,它要求我输入两个整数,我不知道,因为我试图随机生成它们
问题:如何将类中的随机数传递到MathGame
的实例中
下面是MathGame
类
下面是我想弄清楚的MathGame
实例的主要部分
import java.util.Random;
public class MathGame {
private int operand1;
private int operand2;
private int solution;
public MathGame(int operand1, int operand2) {
this.operand1 = operand1;
this.operand2 = operand2;
}
public int genRandom1() {
Random rand = new Random();
int randNum = rand.nextInt(0) + 20;
randNum = operand1;
return operand1;
}
public int genRandom2() {
Random rand = new Random();
int randNum2 = rand.nextInt(0) + 20;
randNum2 = operand2;
return operand2;
}
public int getoperand1() {
return operand1;
}
public int getoperand2() {
return operand2;
}
public String question() {
return "What is" + operand1 + operand2 + "?";
}
public String solution() {
int solution = operand1 + operand2;
return "The correct answer is: " + solution;
}
}
我在MathGame的实例中得到一个错误,因为我需要通过两个整数,但是我不知道这些整数,因为它们应该是随机生成的,这是我在课堂上做的
import java.util.Scanner;
public class MathGameMain {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
MathGame game1 = new MathGame();
}
}
您可能希望更改为以下内容:
import java.util.Random;
public class MathGame {
private int operand1;
private int operand2;
private int solution;
public MathGame ()
{
this.operand1 = getRandom();
this.operand2 = getRandom();
}
public int getRandom()
{
Random rand = new Random();
int randNum = rand.nextInt(20);
return randNum;
}
public int getoperand1()
{
return operand1;
}
public int getoperand2()
{
return operand2;
}
public String question()
{
return "What is" + operand1 + " + " + operand2 + "?";
}
public String solution()
{
int solution = operand1 + operand2;
return "The correct answer is: " + solution;
}
}
您应该在MathGame初始化时生成随机数。如果要随机生成数字,则无需传递数字。此方法需要什么
public int genRandom1()
{
Random rand = new Random();
int randNum = rand.nextInt(0) + 20;
randNum = operand1;
return operand1;
}
及
您创建了一个进程并将其存储到randNum,但在方法中返回的是operans2。只需返回randNum即可。这是我从您的评论中得到的
import java.util.Random;
public class MathGame {
private int operand1;
private int operand2;
private int solution;
public MathGame ()
{
this.operand1 = genRandom();
this.operand2 = genRandom();
}
public int genRandom()
{
Random rand = new Random();
int randNum = rand.nextInt(0) + 20;
return randNum;
}
public String question()
{
return "What is" + this.operand1 + " + " + this.operand2 + "?";
}
public String solution()
{
int solution = operand1 + operand2;
return "The correct answer is: " + solution;
}
}
主课
import java.util.Scanner;
public class MathGameMain {
public static void main(String[] args) {
MathGame game1 = new MathGame();
//question
System.out.println(game1.question());
// solution
System.out.println(game1.solution());
}
}
您没有默认构造函数。默认构造函数没有参数,需要实例化所需的实例。在方法
genRandom1
中,在生成随机值并将其保存在randNum
中后,您将randNum
设置为operator 1
的值,从而丢失该值。我相信您要做的是operan1=randNum
。genRandom2
方法也是如此。既然operando1
和operando2
是您不知道其值的整数,public String question()
read中的单行是否应该返回“What is”+operando1+“+”+operando2+?”代码>?目前,它看起来好像将两个数字相加成一个数字。或者,只需使用适当的构造函数调用MathGame即可:MathGame game1=new MathGame(random1,random2)代码>@markspace但这不起作用,因为我需要在构造函数中包含两个int。但我希望所有操作都在类中完成,而不是在main中完成。我只想使用这些方法生成随机数,以便它们可以在main中使用。然而,我的问题是,当我创建MathGame实例时,我需要在contractor中放入两个int,我希望这些int通过类随机生成。如果这有道理的话。
import java.util.Scanner;
public class MathGameMain {
public static void main(String[] args) {
MathGame game1 = new MathGame();
//question
System.out.println(game1.question());
// solution
System.out.println(game1.solution());
}
}