public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用;
public static void 修饰是静态方法,属于类,使用类名.方法名直接调用。对象
正如答主 @小透明 所说,非静态方法之间能够互相调用,非静态方法也能够调用静态方法;可是静态方法不能够直接调用(未初始化的)非静态方法。因为 public static void main 做静态方法,因此遵循这个原则。语法
可是 Java 能够经过对象名调用静态方法(对象名.静态方法)。Java 中不会致使语法错误(syntax error),可是不推荐这样使用,静态方法与非静态方法调用时应当绝对区分;并且其余 OOP 语言如 C#,Swift,Objective-C 都没有这样的语法。