Java,非静态不能引用静态上下文
Java, non-static cannot be reference to static context
在 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。我将如何解决这个问题,同时让它从用户给定的值中随机化?
移除
Die.n
并将其更改为简单的
n
如果 n
被声明为 static
,您可以使用这两种表示法,即使第一个表示法是多余的(因为您来自包含 class 的内部)
n
不是静态变量,因此您不能以静态方式引用它 (Die.n
)。
由于在Die
class中是一个实例变量,而你在Die
class中引用它,你可以直接使用[=10] =] 而不是 Die.n
.
在 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。我将如何解决这个问题,同时让它从用户给定的值中随机化?
移除
Die.n
并将其更改为简单的
n
如果 n
被声明为 static
,您可以使用这两种表示法,即使第一个表示法是多余的(因为您来自包含 class 的内部)
n
不是静态变量,因此您不能以静态方式引用它 (Die.n
)。
由于在Die
class中是一个实例变量,而你在Die
class中引用它,你可以直接使用[=10] =] 而不是 Die.n
.