2.1. Đóng gói là gì?
• Các lệnh (code) chương trình: Đây là phần chương trình mà thực hiện các hành
động và cúng được gọi là các hàm.
• Dữ liệu chương trình: Dữ liệu là thông tin của chương trình mà tác động đến các
hàm chương trình.
Tính đóng gói (Encapsulation) là một khái niệm của lập trình hướng đối tượng mà ràng buộc dữ liệu và các hàm mà thao tác dữ liệu đó, và giữ chúng an toàn bởi ngăn cản sự gây trở ngại và sự lạm dụng từ bên ngoài. Tính đóng gói dẫn đến khái niệm OOP quan trọng làData Hiding.
Tính đóng gói - Data encapsulation là một kỹ thuật đóng gói dữ liệu, và các hàm mà
sử dụng chúng và trừu tượng hóa dữ liệu là một kỹ thuật chỉ trưng bày tới các Interface và ẩn Implementation Detail (chi tiết trình triển khai) tới người sử dụng.
C++ hỗ trợ các thuộc tính của đóng gói và ẩn dữ liệu thông qua việc tạo các kiểu tự định nghĩa (user-defined), gọi là classes. Chúng ta đã học rằng một lớp có thể chứa các thành viênprivate, protected và public. Theo mặc định, tất cả thành phần được định nghĩa
trong một lớp là private. Ví dụ: ? 1 2 3 4 5 6 7 8 9 10 11 12 classBox { public: doubletinhTheTich(void) {
returnchieudai * chieurong * chieucao; }
private:
doublechieudai; // Chieu dai cua mot box doublechieurong; // Chieu rong cua mot box doublechieucao; // Chieu cao cua mot box };
Các biếnchieudai, chieurong, và chieucao làprivate. Nghĩa là chúng chỉ có thể được
truy cập bởi các thành viên khác của lớp Box, và không thể bởi bất kỳ phần khác trong chương trình của bạn. Đây là một cách thực hiện tính đóng gói trong C++.
Để làm cho các phần của lớp làpublic (ví dụ: có thể truy cập tới các phần khác trong
chương trình của bạn), bạn phải khai báo chúng sau từ khóapublic. Tất cả biến và hàm
được định nghĩa sau từ khóa public là có thể truy cập cho tất cả các hàm trong chương trình của bạn.
2.2. Xây dựng lớp
Lớp (Class) là cách phân loại (classify) các đối tượng dựa trên đặc điểm chung của các đối tượng đó.
• Lớp có thể coi là khuôn mẫu để tạo các đối tượng − Ví dụ: Người, Sinh Vật, Màu sắc…
• Lớp chính là kết quả của quá trình trừu tượng hóa dữ liệu
− Lớp định nghĩa một kiểu dữ liệu mới, trừu tượng hóa một tập các đối tượng − Một đối tượng gọi là một thể hiện của lớp
2.3. Che giấu dữ liệu
Đóng gói là một khái niệm trong lập trình hướng đối tượng, kết hợp giữa dữ liệu và các hàm thao tác dữ liệu với nhau, đồng thời đảm bảo sự an toàn và tránh khỏi sự can thiệp và sử dụng sai cách. Nó liên quan đến việc đóng gói các thành viên dữ liệu và các chức năng bên trong một lớp duy nhất. Đóng gói dữ liệu liên quan tới một khái niệm khác đó là che giấu dữ liệu.
Nói chung, đóng gói là một quá trình gói các đoạn mã tương tự vào cùng một nơi. Tính năng đóng gói dữ liệu là một cơ chế đóng gói dữ liệu và các hàm sử dụng dữ liệu. Trừu tượng hóa dữ liệu là cơ chế chỉ để cho phép hiện ra các giao diện và ẩn dấu đi các chi tiết bên trong khỏi người dùng.
C ++ hỗ trợ các thuộc tính đóng gói và che giấu dữ liệu thông qua việc tạo ra các kiểu dữ liệu do người dùng tự định nghĩa, được gọi là các lớp hay Class. Một lớp có thể chứa các thành viên trong phạm vi Private, Protected và Public. Theo mặc định, tất cả các thành viên sẽ được xác định trong phạm vi là Private.
2.4. Phương thức set/get