static 方法可以被main方法直接调用,而非static方法不可以。
因为static方法是属于类的,是类方法。可以通过类名.方法名直接调用。
而非static方法必须等对象被new出来以后才能使用,因而不能在main中直接调用。
public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用;
public static void 修饰是静态方法,属于类,使用类名.方法名直接调用。
Java 可以通过对象名调用静态方法(对象名.静态方法)。Java 中不会导致语法错误(syntax error),但是不推荐这样使用,静态方法与非静态方法调用时应当绝对区分;而且其他 OOP 语言如 C#,Swift,Objective-C 都没有这样的语法。