Suppose hypothetically that "It is allowed by
JAVA designers" to call non-static methods from static context...then lets see what would happen...but before that make a note about the following point.
1. Basically non-static Methods are used to access the state (Instance variables) of any object. They act according to the state of the object.
Now suppose, you call the non-static method from the static context......the non-static method would demand for certain instance varibales (read above point 1), but instance variables are yet not created , because instance variables are created with the creation of objects. Next question arises in mind is that , what if , we create certain objects and then call method from the static context , then in this case how would a method or JVM comes to know that whose instance variable are you talking about. No object is under consideration of the static method call.
In fact , the methods whose behavior is same regardless of the state of the objects are marked static.
In a nutshell , remember the following points
1) Members means Methods and Instance variables.
2) Non-static Methods can use non-static members. (Ofcourse)
3) Non-static Methods can use static members.
4) Static Methods CANNOT use non-static members.
5) Static Methods can use only static members.
Thanks !!!