Đóng gói C++
đóng gói
Ý nghĩa của Encapsulation là đảm bảo rằng dữ liệu "nhạy cảm" được ẩn khỏi người dùng. Để đạt được điều này, bạn phải khai báo các biến/thuộc tính của lớp là private
(không thể truy cập từ bên ngoài lớp). Nếu bạn muốn người khác đọc hoặc sửa đổi giá trị của một thành viên riêng tư, bạn có thể cung cấp các phương thức get và set công khai.
Truy cập thành viên riêng tư
Để truy cập thuộc tính riêng tư, hãy sử dụng các phương thức "get" và "set" công khai:
Ví dụ
#include <iostream>
using namespace std;
class Employee {
private:
// Private attribute
int salary;
public:
// Setter
void setSalary(int s) {
salary = s;
}
// Getter
int getSalary() {
return salary;
}
};
int
main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
Hãy tự mình thử »Ví dụ giải thích
Thuộc tính salary
là private
, có quyền truy cập hạn chế.
Phương thức public setSalary()
lấy một tham số ( s
) và gán nó cho thuộc tính salary
(salary = s).
Phương thức public getSalary()
trả về giá trị của thuộc tính salary
riêng.
Bên trong main()
, chúng ta tạo một đối tượng của lớp Employee
. Bây giờ chúng ta có thể sử dụng phương thức setSalary()
để đặt giá trị của thuộc tính riêng tư thành 50000
. Sau đó, chúng ta gọi phương thức getSalary()
trên đối tượng để trả về giá trị.
Tại sao đóng gói?
- Việc khai báo các thuộc tính lớp của bạn là riêng tư được coi là một cách thực hành tốt (thường xuyên nhất có thể). Tính năng đóng gói đảm bảo kiểm soát dữ liệu của bạn tốt hơn vì bạn (hoặc người khác) có thể thay đổi một phần mã mà không ảnh hưởng đến các phần khác
- Tăng cường bảo mật dữ liệu