——摘自《Java從入門到精通》
我們在學習Java中經常會遇到“方法”這個概念,而在學習C語言或者C++時,又會遇到“函數”概念,語言都是相通的,那二者又有什么區別和聯系呢?
(1)“函數”是一段實現某種“功能”的代碼,函數的操作是對輸入數據的處理。
函數的英文function恰恰有“功能”的含義,可以達到“見名知意”。通過函數的名稱來實施函數調用。它能將一些數據(也就是參數)傳遞jQuery進行處理,然后返回一些數據(即函數的返回值),也可以沒有返回值。所有傳遞給函數的數據都是顯式傳遞的。而方法的參數傳遞通常是隱式的,它可以直接操作類內部的數據。
(2)“方法”也是一段完成某項功能的代碼,也通過名字來進行調用,但它依賴於某個特定的對象。
例如,我們可以說“調用對象X的Y方法”,而不能說“調用Y方法”。簡單來說,方法和對象相關;而函數和對象無關。
因為Java是一門完全面向對象編程的語言,所以在Java中只有方法。
C語言white面向過程的編程語言,所以在C語言中只有函數。
C++是C語言的超集,既支持面向對象編程,也支持面向過程編程。在C++中,如果一個函數獨立於類外,那它就是函數。如果它存在於一個類中,那它就是方法。所不同的是,C++給這種特殊的方法取了一個新名稱——成員函數(member function)。