because class methods are declared with "static" modifier. also to add , you cannot access non-static members(variables and instance members) from static context(block/method). why ? as you wrote yourself, jvm don't expect you to provide any instance when you run static method, so that means it is possible that when you invoke static method, there is no object.