Java中的方法分為兩種:靜態方法和非靜態方法。
靜態方法是屬于類的,可以通過類名直接調用。聲明靜態方法時需要在方法前加上關鍵字“
static”,如下所示:
public class MyClass { public static void staticMethod() { // 靜態方法的實現 } }
非靜態方法是屬于對象的,在使用之前需要先創建對象。非靜態方法沒有關鍵字“
static”,如下所示:
public class MyClass { public void notStaticMethod() { // 非靜態方法的實現 } }
靜態方法和非靜態方法的區別在于:
- 靜態方法屬于類,調用時不需要創建對象。非靜態方法屬于對象,調用時需要先創建對象。
- 靜態方法中不能調用非靜態方法。非靜態方法中可以調用靜態方法。
- 靜態方法中不能使用this關鍵字,非靜態方法中可以使用this關鍵字。
有時候我們需要在不創建對象的情況下調用非靜態方法,可以使用靜態方法來實現。
public class MyClass { public static void staticMethod(MyClass obj) { // 調用對象的非靜態方法 obj.notStaticMethod(); } public void notStaticMethod() { // 非靜態方法的實現 } }
在靜態方法中傳入對象,在方法內部調用對象的非靜態方法。