在java中public void与public static void区别

public static void

  1. static 方法可以被main方法直接调用,而非static方法不可以。
  2. 因为static方法是属于类的,是类方法。可以通过类名,方法名直接调用。
  3. 而非static方法必须等对象被new出来以后才能使用,因而不能在main中直接调用。

public void

  1. 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用;
  2. 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 都没有这样的语法。

你可能感兴趣的:(java)