Reputation: 780
Doing Java course, at UNI atm, and I'm having a bit of trouble with a dice-problem.
I have the following:
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);
}
When compiling I get: non-static variable n cannot be referenced from a static context. How would I go about fixing this, whilst having it randomize from a user given value?
Upvotes: 0
Views: 126
Reputation: 977
n
is not a static variable, so you cannot refer to it in a static manner (Die.n
).
Since it is an instance variable in the Die
class, and you are referring to it in the Die
class, you can just use n
instead of Die.n
.
Upvotes: 3
Reputation: 11131
Remove
Die.n
and change it to simply
n
If n
were declared static
, you could use the both notations, even though the first one would be redundant (because you're from the inside of containing class)
Upvotes: 1