I hate answering my question, but I found the correct answer.
When a method is declare static, only one instance of that method will exist. When you create an object a new instance of the method is created, which is not possible for a static method. Therefore you use the class name.
classname.methodname(); //only one instance 
classname obj;
obj.methodname(); //instance with obj as Object(IDE gives warning, should not be allowed, ideally)
The basic paradigm in Java is that you write classes, and that those
  classes are instantiated. Instantiated objects (an instance of a
  class) have attributes associated with them (member variables) that
  affect their behavior; when the instance has its method executed it
  will refer to these variables.
However, all objects of a particular type might have behavior that is
  not dependent at all on member variables; these methods are best made
  static. By being static, no instance of the class is required to run
  the method.
You can do this to execute a static method:
classname.staticMethod();//Simply refers to the class's static code But
> to execute a non-static method, you must do this:
> 
> classname obj = new classname();//Create an instance
> obj.nonstaticMethod();//Refer to the instance's class's code