6. Đóng gói trong lập trình C++ hướng đối tượng

Trong lập trình C++ hướng đối tượng, Đóng gói (Encapsulation) là một khái niệm quan trọng trong lập trình hướng đối tượng, cho phép che giấu thông tin bên trong lớp và chỉ cho phép truy cập thông qua các phương thức công khai (public methods). Mục tiêu chính của đóng gói là bảo vệ dữ liệu và đảm bảo tính nhất quán của dữ liệu và hành vi.

Trong lập trình C++, đóng gói được thực hiện thông qua việc sử dụng các access specifiers như public, privateprotected.

Dưới đây là một ví dụ về cách sử dụng đóng gói trong lập trình C++:

cpp
#include <iostream>

class BankAccount {
private:
    std::string accountNumber;
    double balance;

public:
    // Hàm khởi tạo
    BankAccount(std::string accNum, double initBalance) : accountNumber(accNum), balance(initBalance) {}

    // Phương thức để nạp tiền vào tài khoản
    void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
            std::cout << "Nạp tiền thành công. Số dư mới: " << balance << std::endl;
        }
    }

    // Phương thức để rút tiền từ tài khoản
    void withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
            std::cout << "Rút tiền thành công. Số dư mới: " << balance << std::endl;
        } else {
            std::cout << "Không thể rút tiền. Số dư không đủ hoặc số tiền không hợp lệ." << std::endl;
        }
    }
};

int main() {
    BankAccount account("123456789", 1000.0);
    
    account.deposit(500.0);
    account.withdraw(300.0);
    
    return 0;
}

Trong ví dụ trên, lớp BankAccount có hai thuộc tính accountNumberbalance được khai báo là private, và có hai phương thức depositwithdraw để thực hiện các hoạt động liên quan đến tài khoản. Các phương thức này là các phương thức công khai (public methods), do đó, bên ngoài lớp chỉ có thể truy cập thông qua chúng.

Việc sử dụng đóng gói giúp bảo vệ dữ liệu và đảm bảo tính nhất quán của hành vi của đối tượng, ngăn ngừa việc truy cập trực tiếp vào dữ liệu và đảm bảo rằng tất cả các hoạt động được thực hiện thông qua các phương thức đã được kiểm soát.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top