The main method has to be "public static" because of the following reasons. (Two options)
static because it has to be constant and cannot be changed.
static because it has to be loaded by the JVM without instantiating it
public because other classes may also call the main method of a class
public because JVM has to have access to the main method in order to call it.