2014-02-06 59 views
-4

功能和方法有什麼區別?
任何人都可以用適當的例子說出來嗎?
並說明有什麼區別?我們說一些例程稱爲函數,它稱爲方法?
在此先感謝功能和方法的區別

回答

0

函數或方法是一個指定的可調用代碼塊,它執行一些操作並可選地返回一個值。

c語言中使用了術語函數。 Java & C#人們調用這些方法(並且在這種情況下函數是在類/對象中定義的)。

C++程序員可能會稱它爲函數或有時方法(取決於它們是編寫過程式C++代碼還是正在做面向對象的C++方式)。

您可以通過只調用它調用一個函數就像result = mySum(num1, num2); 名字你會調用一個方法,通過引用其對象首先像

result = MyCalc.mySum(num1,num2); 

檢查CubanAzucy的答案的鏈接。它已經在Stack Overflow上詳細討論過了。

0

函數是一段按名稱調用的代碼。它可以傳遞數據來操作(即參數),並可以選擇返回數據(返回值)。

所有傳遞給函數的數據都被顯式傳遞。

方法是一段代碼,通過與對象關聯的名稱調用。在大多數方面,除了兩個關鍵區別之外,它與功能相同。

它被隱式地傳遞給它被稱爲的對象 它能夠操作類中包含的數據(記住一個對象是一個類的實例 - 類是定義,對象是該數據的一個實例)

一般而言:方法是屬於某個類的函數,函數可以位於代碼的任何其他範圍內,因此您可以聲明所有方法都是函數,但並非所有函數都是方法:

以下面的python爲例:

class Door: 
    def open(self): 
    print 'hello stranger' 

def knock_door: 
    a_door = Door() 
    Door.open(a_door) 

knock_door() 

給出的例子顯示了一個名爲「Door」的類,它有一個名爲「open」的方法或動作,因爲它是在類中聲明的,所以它被稱爲方法。還有一部分代碼在下面定義了一個函數「def」,它是一個函數,因爲它沒有在類中聲明,這個函數調用我們在類中定義的方法,就像你看到的,最後函數正在稱爲「獨自」。

正如你所看到的,你可以在任何地方調用函數,但是如果你想調用一個方法,你必須傳遞一個與聲明方法的類相同類型的新對象(Class.method(object))或者你必須調用對象內部的方法(object.Method()),至少在python中。

把方法看作只有一個實體可以做的事情,所以如果你有一個Dog類,只有在這個類中有一個樹皮函數是有意義的,這將是一個方法,如果你還有一個Person類,可以合理地寫一個函數「飼料」,因爲它不屬於任何類別,因爲人類和狗類都可以飼料,你可以稱它爲函數,因爲它不屬於任何類別。

相關問題