Trong lập trình hướng đối tượng, giao thức (tiếng Anh: protocol) hay giao diện (interface) là một phương tiện phổ biến để các đối tượng không liên quan giao tiếp với nhau. Đây là định nghĩa về phương thức và giá trị mà các đối tượng đồng ý để hợp tác.
Ví dụ, trong Java (nơi các giao thức còn được gọi là giao diện), giao diện Comparable đặc tả một phương thức compareTo() mà các lớp hiện thực giao diện này phải hiện thực phương thức đó. Điều đó có nghĩa là một phương pháp sắp xếp riêng biệt, ví dụ như, có thể sắp xếp bất cứ đối tượng này có hiện thực giao diện Comparable, mà không cần biết chút gì về bản chất bên trong của lớp đó (ngoại trừ hai đối tượng được so sánh bằng phương thức compareTo()).
Giao thức là một mô tả về:
Các thông điệp được hiểu bởi đối tượng.
Các đối số mà những thông điệp có thể được cung cấp.
Các kiểu của kết quả mà thông điệp trả về.
Tính bất biến (invariant) được giữ nguyên bất chấp sự sửa đổi trạng thái của một đối tượng.
Các tình huống đặc biệt sẽ được yêu cầu xử lý bởi máy khách tới đối tượng.
Nếu đối tượng được đóng gói hoàn toàn thì giao thức sẽ mô tả cách duy nhất mà các đối tượng được truy xuất bởi các đối tượng khác.
Một số ngôn ngữ lập trình cung cấp hỗ trợ ngôn ngữ rõ ràng cho giao thức hay giao diện (Ada, C#, D, Dart, Delphi, Go, Java, Logtalk, Object Pascal, Objective-C, PHP, Racket, Seed7, Swift). Trong C++ giao diện còn được gọi là lớp nền trừu tượng (abstract base class) và được hiện thực bằng hàm ảo thuần túy (pure virtual function). Các tính năng hướng đối tượng trong Perl cũng hỗ trợ giao diện.
Mặc dù ngôn ngữ lập trình Go thường không được xem là ngôn ngữ hướng đối tượng, nó vẫn cho phép phuiwong thức được định nghĩa bằng kiểu người dùng định nghĩa (user-defined type). Go có kiểu "giao diện" tương thích với bất cứ kiểu nào hỗ trợ một tập các phương thức (các kiểu này không yêu cầu phải hiện thực rõ ràng giao diện). Giao diện rỗng, interface{}
, tương thích với tất cả các kiểu.
Lưu ý rằng ngôn ngữ lập trình hàm (functional programming) và lập trình phân tán (distributed programming) có một khái niệm cũng gọi là "giao thức", nhưng ý nghĩa có chút khác biệt (ví dụ một đặc tả cho phép trao đổi thông điệp, nhấn mạnh vào trao đổi chứ không phải vào nội dung thông điệp). Điểm khác biệt này do giả định khác nhau giữa mẫu hình lập trình hàm và lập trình hướng đối tượng. Cụ thể, những điểm sau được xem là một phần của giao thức trong những ngôn ngữ đó:
Các chuỗi được cho phép của thông điệp,
Những hạn chế với các đối tượng tham gia trong giao tiếp,
Các hiệu ứng mong đợi sẽ xả ra khi thông điệp được xử lý.
Lớp kiểu (type class) trong các ngôn ngữ như Haskell được sử dụng nhiều cho những thứ mà sự kiện được dùng cho.
👁️
43 | ⌚2025-09-03 20:58:28.584
Mua hàng tại Shopee giảm thêm 30%

Trong lập trình hướng đối tượng, **giao thức** (tiếng Anh: _protocol_) hay **giao diện** (_interface_) là một phương tiện phổ biến để các đối tượng không liên quan giao tiếp với nhau. Đây là định
**Lập trình hướng đối tượng** () là một mẫu hình lập trình dựa trên khái niệm "đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu trong các trường, thường được gọi là
Đây là danh sách các thuật ngữ tìm thấy trong lập trình hướng đối tượng. Một số có liên quan đến lập trình hướng đối tượng và một số thì không. Lưu ý rằng, các
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng ------------ Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm,
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng ------------ Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm,
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng ------------ Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm,
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng ------------ Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm,
Combo Giáo Trình Kỹ Thuật Lập Trình C Căn Bản Và Nâng Cao + Giáo Trình C++ Và Lập Trình Hướng Đối Tượng (2 quyển) Giáo Trình C++ Và Lập Trình Hướng Đối Tượng trình
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng ------------ Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm,
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng ------------ Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm,
Giáo Trình C Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu
Giáo Trình C Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu
Giáo Trình C Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu
**Python** () là ngôn ngữ lập trình bậc cao đa năng. Triết lý thiết kế của nó nhấn mạnh khả năng đọc mã bằng cách sử dụng thụt lề đáng kể. Python có kiểu động
**D** là một ngôn ngữ lập trình hệ thống hướng đối tượng, dùng câu lệnh, đa mẫu hình do Walter Bright của Digital Mars tạo ra và phát hành năm 2001. Quá trình thiết kế
**Java** (phiên âm Tiếng Việt: "_Gia-va_") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ
**Kotlin** là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thể được biên dịch sang mã nguồn Java hay sử dụng cơ sở hạ tầng trình biên dịch
**Ruby** là một ngôn ngữ lập trình hướng đối tượng, có khả năng phản ứng. Theo tác giả, Ruby chịu ảnh hưởng bởi Perl, Smalltalk, Eiffel, Ada và Lisp. Ruby cung cấp nhiều mẫu hình
Giáo Trình C++ Và Lập Trình Hướng Đối Tượng Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu
**Swift** là một ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS và macOS, watchOS, tvOS và z/OS. được giới thiệu bởi Apple tại hội nghị WWDC 2014. Swift được mong
Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục. Chúng được dùng để xử lý dữ liệu nhưng lại tách rời các cấu trúc dữ liệu.
**Lập trình hướng tác tử** (tiếng Anh: _Agent-oriented programming_ hay _AOP_) là một mẫu hình lập trình trong đó việc xây dựng phần mềm dựa trên khái niệm tác tử phần mềm. Điều này ngược
**Đặc tính** (tiếng Anh: _property_), trong một số ngôn ngữ lập trình hướng đối tượng, là một loại đặc biệt của thành viên lớp, trung gian chức năng giữa một trường (hay thành viên dữ
**Giao tiếp lập trình ứng dụng mở** (Open API) (thường được gọi là một giao tiếp lập trình ứng dụng công cộng.) là một giao tiếp lập trình ứng dụng công khai cung cấp cho
Sách Tin Học- Hướng Dẫn Lập Trình C# ( Bài Tập Thực Hành )- Bìa mềm - STK- Tặng Sổ Tay Xương Rồng Sổ tay ngẫu nhiên 1 trong 4 hình C# là ngôn ngữ
nhỏ|Ảnh chụp màn hình tài liệu [[API web viết bởi NASA]] Một **giao diện lập trình ứng dụng** (, viết tắt: _API_) là một giao diện mà một hệ thống máy tính hay ứng dụng
phải|nhỏ|402x402px|[[Mã nguồn của một chương trình máy tính đơn giản được viết bằng ngôn ngữ lập trình C. Khi được biên dịch và chạy, nó sẽ cho kết quả "Hello, world!".]] **Ngôn ngữ lập trình**
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
**C** là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều
thumb|**[[Phép tính lambda** là một hệ thống hình thức để định nghĩa hàm, ứng dụng hàm và đệ quy được Alonzo Church đề xuất vào những năm 193x.]] **Lý thuyết ngôn ngữ lập trình** (thường
Trong lập trình hướng đối tượng, **lớp** (**class**) là một chương trình-mã-khuôn mẫu có thể mở rộng được để tạo các đối tượng, cung cấp giá trị khởi tạo cho trạng thái (biến thành viên)
**R** là một ngôn ngữ lập trình và môi trường phần mềm dành cho tính toán và đồ họa thống kê. Đây là một bản hiện thực ngôn ngữ lập trình S với ngữ nghĩa
Đây là danh sách các ngôn ngữ lập trình đáng chú ý, được nhóm theo loại. Vì không có sơ đồ phân loại bao quát cho các ngôn ngữ lập trình, nên trong nhiều trường
Trong lập trình hướng đối tượng, một **Đối tượng thượng đế** (tiếng Anh: God object) là một đối tượng _biết quá nhiều_ hoặc _làm quá nhiều_. Đối tượng thượng đế là một ví dụ về
Trong điện toán, **giao diện** (tiếng Anh: _interface_) là một biên giới chia sẻ giữa hai thành phần tách biệt của một hệ thống máy tính trao đổi thông tin. Việc trao đổi có thể
Combo sách hay, cung cấp những kiến thức lập trình mới nhất, đặc biệt dành cho các bạn đam mê CNTT. 1. Clean Code Mã sạch và con đường trở thành lập trình viên giỏi
Thông tin chi tiết Mã hàng 8935095633340 Tên Nhà Cung Cấp Huy Hoang Bookstore Tác giả Phạm Văn Ất, Lê Trường Thông NXB Bách Khoa Hà Nội Năm XB 2023 Ngôn Ngữ Tiếng Việt Trọng
**Object Pascal** chỉ đến một nhánh của phát sinh hướng đối tượng của Pascal, được biết đến chủ yếu với vai trò ngôn ngữ lập trình chính của Delphi. ## Lịch sử ban đầu tại
Công ty phát hành Huy Hoang Bookstore Tác giả: G.S Phạm Văn Ất Ngày xuất bản: 2020 Kích thước: 16 x 24 cm Loại bìa: Bìa mềm Số trang: 488 Nhà xuất bản: Nhà Xuất
**Turbo Pascal** là một trình biên dịch và một môi trường phát triển tích hợp (IDE) cho ngôn ngữ Pascal chạy trên nền hệ điều hành MS-DOS và CP/M, được phát triển bởi hãng Borland.
**Windows Template Library** (WTL) là thư viện lập trình hướng đối tượng C++ mã nguồn mở dùng để phát triển các ứng dụng trên nền tảng hệ điều hành Windows. WTL được tạo ra bởi
Giáo Trình Lập Trình Android Ngày nay các thiết bị số cầm tay như điện thoại di động, điện thoại thông minh, máy tính bảng có rất nhiều trên thị trường. Với giá thành ngày
**Biểu diễn tri thức và suy luận** (**Knowledge representation and reasoning**, **KRR**, **KR&R**, **KR²**) là lĩnh vực của trí tuệ nhân tạo (AI) tập trung vào việc biểu diễn thông tin về thế giới dưới
thumb|Các vòng lặp lên kế hoạch và phản hồi trong lập trình cực hạn **Lập trình cực hạn** (tiếng Anh: **Extreme programming**, viết tắt là **XP**) là một quy trình phát triển phần mềm nhằm
nhỏ|Cbmain Trong khoa học máy tính, một **ngôn ngữ lập trình bậc cao** (tiếng Anh: _high-level programming language_) là một ngôn ngữ lập trình có sự trừu tượng hóa mạnh mẽ khỏi các chi tiết
**Scratch** là một ngôn ngữ lập trình mang tính giáo dục miễn phí dựa trên các khối ngôn ngữ lập trình trực quan (VPL) và trang web chủ yếu để giáo dục lập trình, với
Sách - Giáo Trình Kỹ Thuật Lập Trình C Tác giả: Nhiều tác giả Nhà xuất bản: Nhà Xuất Bản Giáo Dục Việt Nam Đơn vị phát hành: Nhà Xuất Bản Giáo Dục Việt Nam
**Ada** là ngôn ngữ lập trình xuất xứ từ Bộ quốc phòng Mỹ vào khoảng nửa đầu thập niên 80 của thế kỷ 20. Ngôn ngữ này được đặt tên theo Ada Augusta nữ bá