Trong các bài học trước, bạn đã biết cách tạo ra một Lớp (Class) và các Đối tượng (Object). Tuy nhiên, nếu bất kỳ ai từ bên ngoài cũng có thể truy cập và thay đổi trực tiếp các thuộc tính của đối tượng (như sửa tuổi thành số âm, đổi lương thành 0 đồng), chương trình của bạn sẽ gặp rủi ro lớn về tính logic và bảo mật.
Đó chính là lý do Tính đóng gói (Encapsulation) ra đời. Đây là 1 trong 4 trụ cột quan trọng nhất của Lập trình hướng đối tượng (OOP).
1. Tính Đóng Gói (Encapsulation) Là Gi?
Tính đóng gói là kỹ thuật gom nhóm các thuộc tính (dữ liệu) và phương thức (hành động) liên quan lại với nhau vào trong một lớp, đồng thời che giấu thông tin nội bộ của đối tượng đó. Các lớp bên ngoài sẽ không thể tùy tiện chỉnh sửa dữ liệu bên trong nếu không được phép.
Hãy tưởng tượng chiếc máy pha cà phê: bạn chỉ cần bấm nút (gọi phương thức), máy sẽ tự hoạt động và đưa ra cà phê. Bạn không cần (và không nên) thò tay vào bên trong để điều chỉnh dây điện hay bánh răng khi máy đang chạy.
2. Phạm Vi Truy Cập Với Access Modifiers
Để thực hiện việc che giấu hay công khai thông tin trong Java, chúng ta sử dụng các từ khóa gọi là Access Modifiers (Các từ khóa quy định phạm vi truy cập). Có 4 mức độ chính:
- private: Phạm vi hẹp nhất. Chỉ có thể truy cập bên trong chính lớp đó. Đây là mức độ thường dùng để bảo vệ các thuộc tính (biến).
- default (khi không viết từ khóa nào): Cho phép truy cập trong cùng lớp và các lớp cùng nằm trong một package (thư mục chứa code).
- protected: Cho phép truy cập trong cùng package và các lớp con (kế thừa) dù ở khác package.
- public: Phạm vi rộng nhất. Có thể truy cập từ bất kỳ đâu trong dự án. Thường dùng cho các phương thức mà bạn muốn công khai ra bên ngoài.
Nhận xét
Đăng nhận xét