Sự khác nhau giữa phương pháp và chức năng là gì? Có phải là một phương thức trả về một giá trị và một hàm không?Sự khác nhau giữa phương pháp và chức năng là gì?
Trả lời
Phương thức là thực sự là một hàm được sử dụng trong ngữ cảnh của một lớp/đối tượng.
Khi bạn tạo một hàm bên ngoài của một lớp/đối tượng, bạn có thể gọi nó là một chức năng nhưng khi bạn tạo một hàm bên trong một lớp học, bạn có thể gọi nó là một phương pháp .
class foo {
public function bar() { // a method
........
}
}
function bar() { // a function not part of an object
}
Vì vậy, một đối tượng có thể có phương pháp (chức năng) và thuộc tính (biến).
câu trả lời rất hay, rất rõ ràng. Cảm ơn. – Ben
Phương thức phải được gọi là '$ this-> bar()' nếu trong lớp đó, nếu không bạn phải khởi tạo lớp và sau đó gọi nó bằng cách sử dụng cá thể lớp (đối tượng), như vậy: '$ foo-> bar() '. Đối với các hàm, nó đơn giản là 'bar()'. – knownasilya
Bạn học điều gì đó mới mỗi ngày. –
Trong một dòng, phương thức là hàm nhưng hàm không nhất thiết là phương thức. Sự khác biệt là một phương thức được sử dụng để mô tả các hàm được định nghĩa trong các lớp được sử dụng với các cá thể của các lớp đó.
package {class Example {
public function iAmAMethod():void {
addEventListener("listenerFunctionIsNotAMethod", function(event:Event):void {
trace("inline function, yay!");
});
}
}
Sự khác biệt giữa các thuật ngữ "phương pháp" và "chức năng" là một "phương pháp" là một hàm thành viên của một lớp, trong khi một chức năng độc lập thì không, và một chức năng độc lập thường tồn tại trong bối cảnh toàn cục.
Cả hai đều được sử dụng thay thế cho nhau, nhưng hàm là thuật ngữ được sử dụng trong ngôn ngữ và phương pháp cấu trúc là thuật ngữ được sử dụng trong Langauages hướng đối tượng. Ngoài ra các phương thức tồn tại trong các đối tượng trong khi các hàm cũng có thể tồn tại mà không có các đối tượng.
Các từ không phản đối lẫn nhau mà là mô tả hai khía cạnh có thể có của một chương trình con. Nỗ lực xác định các từ sau:
Chương trình con: Một tập hợp các hướng dẫn có thể được sử dụng nhiều lần trong cùng một chương trình.
Chức năng: Một chương trình con trả về một giá trị. Xuất phát từ các hàm trong toán học (wikipedia).
Phương thức: Một chương trình con thuộc về đối tượng hoặc lớp học. Có thể là một hàm.
Tôi có xu hướng sử dụng từ "hàm" cho mọi chương trình con không có tác dụng phụ nhưng trả lại một giá trị rõ ràng và từ "phương thức" cho mọi chương trình con có tác dụng phụ.
Đây là các định nghĩa của chương trình con và hàm được sử dụng trong Fortran, một trong những ngôn ngữ cấp cao đầu tiên. Đó là một thời gian rất dài trước đây. Tôi không thể nghĩ ra một ngôn ngữ đương đại sử dụng "chương trình con" làm từ khóa. Ngôn ngữ C sử dụng "chức năng" cho cả hai, và đó là cách hầu hết các ngôn ngữ khác sử dụng từ đó. (Bạn không sao cho phương pháp.) –
Nhưng câu hỏi không nói gì về từ khóa. Đó là một câu hỏi về thuật ngữ mô tả mã bằng ngôn ngữ nói. Tôi có thể đề nghị bài viết wikipedia http://en.wikipedia.org/wiki/Subroutine – Jonatan
@MarcRochkind Không (Visual) Basic xác định các chức năng bằng cách sử dụng từ khóa 'Sub'? – Byson
Chức năng là một thuật ngữ chung được sử dụng trong phương pháp lập trình thủ tục khi mà Phương thức là thuật ngữ được sử dụng trong phương pháp lập trình hướng đối tượng để xác định thuộc tính lớp.
Chúng tôi xác định phương thức bên trong lớp, chúng tôi xác định hàm ngoài lớp, hàm không thuộc lớp
- 1. Trong C++, sự khác biệt giữa một phương pháp và một chức năng là những gì
- 2. Sự khác nhau giữa phương pháp rút KineticJS là gì?
- 3. Sự khác nhau giữa phương pháp tĩnh và phương pháp không tĩnh là gì?
- 4. sự khác biệt giữa phương pháp ngủ và phương pháp năng suất đa luồng là gì?
- 5. Sự khác nhau giữa phương pháp cấu trúc tĩnh và phương thức lớp tĩnh là gì?
- 6. Sự khác nhau giữa & chức năng và function() trong perl
- 7. sự khác nhau giữa UIImageView và drawInRect là gì?
- 8. sự khác biệt giữa myFunction chức năng địa phương và myFunction local = function() là gì
- 9. Sự khác biệt giữa chức năng mẫu và chức năng mẫu là gì?
- 10. Sự khác nhau giữa init() và window.init() là gì?
- 11. Sự khác nhau giữa Phương pháp và Thuộc tính trong Ruby là gì?
- 12. Sự khác nhau giữa phương pháp BeanPostProcessor và init/destroy trong Spring là gì?
- 13. Sự khác nhau giữa sysfs_create_file() và sysfs_create_group() là gì?
- 14. Sự khác nhau giữa tài sản và phương pháp
- 15. Sự khác nhau giữa angularjs và dust.js là gì?
- 16. Sự khác nhau giữa Array.GetLength() và Array.Length là gì?
- 17. Sự khác nhau giữa java.lang.Math và java.lang.StrictMath là gì?
- 18. Sự khác nhau giữa JFrame.getContentPane() và JFrame.getRootPane() là gì?
- 19. Sự khác nhau giữa isAlpha và isLetter là gì?
- 20. Sự khác nhau giữa 'và #' trong Lisp là gì?
- 21. Sự khác nhau giữa is_int và is_integer phương pháp php
- 22. Sự khác nhau giữa trừu tượng và ảo là gì?
- 23. Sự khác nhau giữa connection.Close() và connection.Dispose() là gì?
- 24. Sự khác nhau giữa metaClass.methods và metaClass.metaMethods là gì?
- 25. sự khác nhau giữa AppDomain.CreateInstance và Activator.CreateInstance là gì?
- 26. Sự khác nhau giữa ArrayList.clear() và ArrayList.removeAll() là gì?
- 27. Sự khác nhau giữa GetBlobReference và GetBlobReferenceFromServer là gì?
- 28. Sự khác nhau giữa Server.MapPath và HostingEnvironment.MapPath là gì?
- 29. sự khác nhau giữa plugin và thư viện là gì?
- 30. Sự khác nhau giữa isSaleable() và isAvailable() là gì?
Thực sự không có sự khác biệt về mặt kỹ thuật trong php. Nhưng trong tâm trí của tôi, một hàm là một điều toán học hơn; nó không thay đổi trạng thái, chỉ trả về một giá trị (như f (x) = 2x).Một phương thức sửa đổi trạng thái (như đầu ra "hello world") và có thể trả về một giá trị. Đây là cơ bản một dupe của: http://stackoverflow.com/questions/43777/method-vs-message-vs-function-vs Hy vọng rằng câu trả lời câu hỏi của bạn mặc dù. – Tyler
Chức năng có ý nghĩa trong hầu hết các ngôn ngữ lập trình không liên quan đến ý nghĩa của nó trong toán học. –