我刚刚开始使用 Java 进行编程,但遇到了一个我似乎无法弄清楚的问题。
我的程序旨在滚动具有 (n) 面的骰子,其中 (n) 由用户指定。然后程序会将掷骰的结果打印为整数,将掷骰的面值打印为整数(这似乎与掷骰的结果相同),并将掷骰的结果作为字符串打印。最后两种方法(面值和字符串)是与掷骰子分开的方法,但仍然是必需的。
我的问题是,虽然代码可以编译,但 getFaceValue() 和 toString() 方法都返回零。我的代码是:
import java.io.*;
import java.util.*;
public class Die {
private int z;
private String faceName;
//sets (and returns) the face value to a uniform random number between 1 and the number of faces.
public int roll() {
Scanner keyboard = new Scanner(System.in);
int sides = keyboard.nextInt();
double x = Math.random();
double y = (x * sides) + 1;
z = (int)y;
return z;
}
//returns the current face value of the die.
public int getFaceValue() {
int face = z;
return face;
}
//returns the string representation of the face value.
public String toString() {
faceName = Integer.toString(z);
return faceName;
}
public static void main(String [] args) {
System.out.println("How many sides will the die have?");
System.out.println(" ");
System.out.println("Roll: " + new Die().roll());
System.out.println("Face: " + new Die().getFaceValue());
System.out.println("String: " + new Die().toString());
}
}
我将不胜感激您能提供的任何帮助。