Java は初めてで、ダイス プログラムでさらに別のエラーが発生しました。
このプログラムには、サイコロを振って 1 からユーザーが指定した数値までの値を返す roll()、サイコロの値を int として返す getFaceValue()、および toString() という 3 つのメソッドがあります。サイコロを文字列として返します。
私のプログラムに関する以前の質問への回答により、プログラムを機能させることができましたが、教授が望むように構成されていなかったため、プログラムを作り直す必要がありました。メソッド/変数のいずれも静的にすることはできず、プログラムの主要部分でのみユーザー入力を取得できることがわかりました。
コンパイルしようとすると、次のエラーが発生します。
Die.java:12: error: cannot find symbol
double y = (x * sides) + 1;
symbol: variable sides
location: class Die
私のコードは次のとおりです。
import java.io.*;
import java.util.*;
public class Die {
//private int sides;
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() {
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) {
int sides;
System.out.println("How many sides will the die have?");
Scanner keyboard = new Scanner(System.in);
sides = keyboard.nextInt();
System.out.println(" ");
Die die = new Die();
System.out.println("Roll: " + die.roll());
System.out.println("Face: " + die.getFaceValue());
System.out.println("String: " + die.toString());
}
}
もともと、私は変数面をプライベート int として持っていました (私のプログラムではコメントアウトされていることがわかります) が、これにより静的参照エラーが発生しました。
あなたが提供できる助けに感謝します。