Sounds like you're memorized a rule, but memorized it incorrectly. Instead, let's try to get you to
understand.
Instance variables are part of the objects of a class. If class A has a member x, then if there are 100 A's, then there are 100 x's, one inside each A object. It doesn't make any sense to try to refer to "x" without specifying which instance of "A" we're talking about -- it's like asking for the age without specifying which person's age we're talking about. It has no meaning. We have to say "the x of
this A".
Since static methods in class A aren't "attached" to an individual object, the body of a static method can't just say "x" -- it must have an actual instance of the class A so that it can say "the x in
this A."
So that's the rule: code in static methods can't refer to instance ("non-static") variables without having an object reference to use; that's pretty much the opposite of what you said here.
I'm going to move this to
SCJP, as it's hardly an advanced
Java question.