"Phương pháp" là một thuật ngữ đặc biệt trong Lập trình hướng đối tượng. Có ai biết khi nào từ bắt đầu được sử dụng theo nghĩa đặc biệt này, và liên quan đến ngôn ngữ lập trình hoặc nhánh khác của học định lượng không?
"Phương pháp" là một thuật ngữ đặc biệt trong Lập trình hướng đối tượng. Có ai biết khi nào từ bắt đầu được sử dụng theo nghĩa đặc biệt này, và liên quan đến ngôn ngữ lập trình hoặc nhánh khác của học định lượng không?
Câu trả lời:
Java và C # có phương thức từ C ++, lấy từ Simula .
Và Algol có lẽ đã có ảnh hưởng đến Simula:
Ngoài ra, phiên bản MIT ALGOL, AED-0, cấu trúc dữ liệu được liên kết ("plexes", theo phương ngữ đó) trực tiếp với các thủ tục, tạo tiền đề cho những gì sau này được gọi là "thông điệp", "phương thức" và "chức năng thành viên"
Thật khó để tìm thấy một câu trả lời chắc chắn ngoài kia, nhưng ngôn ngữ đầu tiên đề cập đến mọi thứ như các phương thức dường như là Simula mặc dù điều này có thể sai hoặc hồi tố. Cho rằng các hàm (từ toán học) và các thủ tục (cũng từ toán học) hiển thị trong các ngôn ngữ lập trình, điều tốt nhất tôi có thể hình dung là "Phương thức" là dạng viết tắt của "Phương pháp luận".
Tất cả đều là các chương trình con, các đoạn mã tạo thành một chương trình máy tính. Tôi tưởng tượng "Phương pháp" đã được chọn vì ý tưởng đằng sau lập trình kiểu OOP là sử dụng lại mã càng nhiều càng tốt. Do đó, bạn có thể có một quy trình nhưng một phương pháp làm cho nó rõ ràng hơn rằng đó là một phong cách mới tại nơi làm việc. Thành thật mà nói, tôi đã biết gọi các hàm phương thức và tôi đã nghe các hàm gọi là phương thức.
void
. Các hàm thành viên C ++ có liên quan rất chặt chẽ với các hàm thông thường (không giống như trong Simula) - có một this
tham số ngầm và (có thể) một cơ chế điều phối thời gian chạy không thực sự thay đổi những gì bạn đang xử lý. Tôi không biết nếu C là người đầu tiên coi các chức năng và quy trình là điều tương tự, nhưng Pascal (một ngôn ngữ mới hơn) có các từ khóa function
và procedure
mặc dù IIRC, các hàm Pascal có thể có tác dụng phụ.
Tôi đã tìm kiếm thông tin về điều này trong nhiều thập kỷ. Tôi đoán cho đến nay thuật ngữ này được đưa vào Simula từ trường con đặc biệt của tính toán số, trong đó thuật toán cụ thể để thực hiện một hàm (ví dụ, một giá trị riêng hoặc bất cứ thứ gì) thường được gọi là một phương thức . Điều này là do bạn có thể có nhiều phương pháp số khác nhau để tính toán cùng một hàm toán học, với nhiều sự đánh đổi khác nhau. Trong OOP, do ghi đè phương thức, bạn có thể có chức năng "giống nhau" được triển khai khác nhau khi phù hợp với lớp - ví dụ: khu vực sẽ được triển khai khác nhau cho Hình tròn và Hình chữ nhật , cả hai Hình dạng , có một khu vực. Đây có vẻ là một phần mở rộng hợp lý của khái niệm truyền thống về phương pháp số.
Tôi không biết gì về từ nguyên của từ này trong lịch sử OOP. Nhưng tôi biết rằng đó không phải là khấu trừ (có thể khấu trừ ). Một thuật ngữ tốt hơn (Thời hạn khấu trừ hoặc MDT nhiều hơn) cho nó có thể là phản ứng hoặc hành động
Các lập trình viên với nền tảng REAL BASIC, VBx và VB.net nhận thức được hai loại khai báo phương thức "FUNCTION" & "SUB". Họ ngôn ngữ BASIC cho phép khai báo một hàm với từ khóa "FUNCTION" cũng như từ khóa "SUB". Sự khác biệt giữa hai điều này là "CHỨC NĂNG" có thể hoặc sẽ không trả về giá trị dưới dạng "SUB", chỉ thực thi mã nhưng sẽ không trả về bất kỳ giá trị nào. Nhưng với sự ra đời của các khái niệm OO, các thuật ngữ phụ và chức năng được bắt đầu được sử dụng thay thế cho nhau như các phương thức.