靜態法與非靜態法
方法是一系列執行特定任務的語句。方法可以接受輸入併產生輸出。靜態方法和非靜態方法是面向對象編程語言中存在的兩種類型的方法。靜態方法是與類關聯的方法。與對象關聯的方法稱為非靜態(實例)方法。在面嚮對象語言中,方法被用作對存儲在對象中的數據進行操作的機制。
什麼是靜態方法?
在面向對象編程中,靜態方法是與類相關聯的方法。因此,靜態方法不具備對類的特定實例進行操作的能力。可以在不使用包含靜態方法的類的對象的情況下調用靜態方法。下面是在Java中定義靜態方法的示例。在Java中定義靜態方法時必須使用static。
使用它所屬類的名稱,可以調用上面定義的靜態方法如下。
MyClass.MyStaticMethod公司();
需要注意的一點是,靜態方法只能訪問靜態成員。
什麼是非靜態方法?
非靜態方法或實例方法是與類中的對象關聯的方法。因此,使用定義方法的類的對象調用非靜態方法。非靜態方法可以訪問非靜態成員以及類的靜態成員。在許多面向對象語言(如C++、C語言、java)中,當調用非靜態方法時,調用方法的對象作為隱式參數傳遞(稱為“該”引用)。因此,在方法內部,這個關鍵字可以用來引用調用該方法的對象。下面是在Java中定義實例方法的示例。
上面定義的實例方法可以使用它所屬的類的對象按如下方式調用。
MyClass objMyClass=新建MyClass();
objMyClass.MyInstanceMethod();
靜態法和非靜態法有什麼區別?