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