A static variable can't be accessed from a non-static method. But we can access a static variable inside run() method.
This code compile and run successfully. How come we are accessing the threadcounter inside run() ?
Joined: Aug 05, 2005
Originally posted by Subhro Chowdhury: A static variable can't be accessed from a non-static method.
Yes it can. Non-static variables can't be accessed from a static method.
Joined: Mar 27, 2004
This is easy to understand. A static member (method or variable) doesn't belong to any instance of a class, it belongs to the class itself. Therefore, you can't access, for example, a non-static member from inside a static method, because there's no direct relationship that tells from which instance of the class the non-static member refers to. However, the other way around is perfectly acceptable, because a non-static method knows the class it belongs to, and then can access static members of this class.