Đó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 thành viên riêng, bạn có thể cung cấp các phương thức lấy và
đặt công khai .
Truy cập các thành viên riêng tư
Để truy cập thuộc tính private, hãy sử dụng các phương thức "get" và "set" công khai:
Thí 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;
}
Giải thích ví dụ
Thuộc salary
tính này private
có quyền truy cập hạn chế.
Phương thức public setSalary()
nhận một tham số ( s
) và gán nó cho
salary
thuộc tính (lương = s).
Phương thức public getSalary()
trả về giá trị của thuộc tính private salary
.
Bên trong main()
, chúng ta tạo một đối tượng của Employee
lớp. Bây giờ chúng ta có thể sử dụng
setSalary()
phương thức để đặt giá trị của thuộc tính private thành 50000
. Sau đó, chúng tôi gọi
getSalary()
phương thức trên đối tượng để trả về giá trị.
Tại sao lại đóng gói?
- Việc khai báo các thuộc tính lớp của bạn là private (thường xuyên nếu có thể) được coi là một phương pháp hay. Tính năng đóng gói đảm bảo kiểm soát tốt hơn dữ liệu của bạn, vì bạn (hoặc những người khác) có thể thay đổi một phần của 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