在UNI atm做Java课程,我在骰子问题上遇到了一些麻烦。
我有以下内容:
public class Die {
public int eyes;
private java.util.Random r;
private int n;
public Die (int n) {
r = new Random();
this.n = n;
}
public void roll() {
eyes = r.nextInt(Die.n);
}
编译时我得到:非静态变量n不能从静态上下文中引用。我如何解决这个问题,同时从用户给定的值中随机化?
答案 0 :(得分:3)
n
不是静态变量,因此您无法以静态方式(Die.n
)引用它。
由于它是Die
类中的实例变量,并且您在Die
类中引用它,因此您可以使用n
代替Die.n
。
答案 1 :(得分:1)
删除
Die.n
并将其更改为
n
如果n
被声明为static
,您可以使用这两种符号,即使第一种符号是多余的(因为您来自包含类的内部)