【轉載】在java中public void與public static void區別

static 方法可以被main方法直接調用,而非static方法不可以。
因爲static方法是屬於類的,是類方法。可以通過類名.方法名直接調用。
而非static方法必須等對象被new出來以後才能使用,因而不能在main中直接調用。

public void 修飾是非靜態方法,該類方法屬於對象,在對象初始化(new Object())後才能被調用;
public static void 修飾是靜態方法,屬於,使用類名.方法名直接調用。

非靜態方法之間可以互相調用,非靜態方法也可以調用靜態方法;但是靜態方法不可以直接調用(未初始化的)非靜態方法。由於 public static void main 作靜態方法,所以遵循這個原則。

但是 Java 可以通過對象名調用靜態方法(對象名.靜態方法)。Java 中不會導致語法錯誤(syntax error),但是不推薦這樣使用,靜態方法與非靜態方法調用時應當絕對區分;而且其他 OOP 語言如 C#,Swift,Objective-C 都沒有這樣的語法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章