Tính bao đóng trong C++
Tất cả chương trình C++ bao gồm hai thành phần nền tảng là:
- 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 bao đóng dẫn đến khái niệm OOP quan trọng là Data Hiding.
Tính bao đóng - Data encapsulation là một kỹ thuật bao đóng 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ên private, 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ụ:
class Box { public: double tinhTheTich(void) { return chieudai * chieurong * chieucao; } private: double chieudai; // Chieu dai cua mot box double chieurong; // Chieu rong cua mot box double chieucao; // Chieu cao cua mot box };
Các biến chieudai, 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óa public. 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.
Ví dụ về tính bao đóng trong C++
Trong bất kỳ chương trình C++ nào, nơi bạn triển khai một lớp với các thành viên là public và private thì đó là ví dụ của tính bao đóng và Trừu tượng hóa dữ liệu trong C++. Bạn xem xét ví dụ sau:
#include <iostream> using namespace std; class A{ public: // khai bao constructor A(int i = 0) { tong = i; } // du lieu ma la nhin thay voi ben ngoai void congThem(int motso) { tong += motso; } // du lieu ma la nhin thay voi ben ngoai int tinhTong() { return tong; }; private: // du lieu ma la bi an voi ben ngoai int tong; }; int main( ) { A a; a.congThem(15); a.congThem(25); a.congThem(35); cout << "Tong gia tri la: " << a.tinhTong() <<endl; return 0; }
Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:
Tong gia tri la: 75
Lớp trên cộng hai số và trả về tổng của chúng. Các thành viên public là congThem và tinhTong là các Interface (mà là nhìn thấy) tới bên ngoài và một người sử dụng cần biết chúng để sử dụng lớp đó. Thành viên private là tong là cái gì đó mà người sử dụng không cần biết đến, nhưng là cần thiết cho lớp đó hoạt động một cách chính xác.
Chiến lược thiết kế trong C++
Hầu hết chúng ta đã có ít nhiều kinh nghiệm về việc làm cho các thành viên lớp là private theo mặc định, trừ khi chúng ta thực sự cần thiết phải trưng bày chúng. Đó là một kinh nghiệm về tính đóng gói tốt.
Kinh nghiệm này được áp dụng thường xuyên nhất cho các thành viên dữ liệu, nhưng nó áp dụng như nhau cho tất cả thành viên, bao gồm cả các hàm virtual trong C++.
Theo Tutorialspoint
Bài trước: Trừu tượng hóa dữ liệu trong C++
Bài tiếp: Interface trong C++ (Lớp trừu tượng)
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Những trang web đen siêu hay không thể tìm thấy trên Google
Hôm qua 3 -

Cách chia sẻ một thư mục (folder) trên Windows 10
Hôm qua -

Những stt hay nói về miệng lưỡi thế gian đáng để suy ngẫm
Hôm qua -

Stt về tiền hài hước, những câu nói hài hước về tiền nhưng thâm thúy, ‘thô mà thật’
Hôm qua -

Sửa lỗi 0x80070643 trên Windows
Hôm qua -

Công thức tính chu vi hình tứ giác, diện tích hình tứ giác
Hôm qua 1 -

Tổng hợp thao tác Touchpad trên Windows 10, Windows 11
Hôm qua -

30+ bài thơ về rượu bia hay, thơ chế về rượu bia hài hước và bá đạo cho dân nhậu
Hôm qua -

Cách cho người lạ xem Nhật ký Zalo
Hôm qua -

Cài đặt Python Package với PIP trên Windows, Mac và Linux
Hôm qua
Học IT
Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy