Tính Đóng Gói (Encapsulation) Và Access Modifiers: Bảo Vệ Dữ Liệu Safe 100%

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.

Tính đóng gói Encapsulation và Access Modifiers trong lập trình Java

Đó 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.

3. Bộ Đôi Getter Và Setter:

Nguồn tham khảo


📚 Chuỗi bài: Lộ Trình Tự Học Java Từ Con Số 0 Đến Ứng Dụng Thực Tế

Chuỗi 20 bài viết thiết kế dạng 'cầm tay chỉ việc' dành riêng cho người mới bắt đầu học lập trình Java. Lộ trình đi từ tư duy nền tảng, cú pháp cơ bản, lập trình hướng đối tượng (OOP) cho đến hoàn thiện một dự án thực tế nhỏ.

  1. 1. Java Là Giống Gì? Cài Đặt Environment (JDK & IntelliJ IDEA) Cực Nhanh
  2. 2. Giải Mã Chương Trình 'Hello World' Và Cấu Trúc Cơ Bản Của Bài Code Java
  3. 3. Biến Và Kiểu Dữ Liệu Trong Java: Cách Lưu Trữ Thông Tin Đúng Chuẩn
  4. 4. Toán Tử Trong Java: Hướng Dẫn Tính Toán Và So Sánh Chi Tiết
  5. 5. Nhập Xuất Dữ Liệu Với Scanner: Làm Cho Chương Trình Biết Tương Tác
  6. 6. Cấu Trúc Điều Kiện If-Else Và Switch-Case: Dạy Máy Tính Rẽ Nhánh Tư Duy
  7. 7. Vòng Lặp For, While Và Do-While Trong Java: Tự Động Hóa Công Việc Lặp Lại
  8. 8. Phương Thức (Method) Trong Java: Tái Sử Dụng Code Một Cách Thông Minh
  9. 9. Mảng Một Chiều (Array) Trong Java: Quản Lý Danh Sách Dữ Liệu Đơn Giản
  10. 10. Bài 10: Xử Lý Chuỗi Dữ Liệu Với String Và StringBuilder Trong Java
  11. 11. Lập Trình Hướng Đối Tượng (OOP): Lớp (Class) Và Đối Tượng (Object) Là Đâu?
  12. 12. Tính Đóng Gói (Encapsulation) Và Access Modifiers: Bảo Vệ Dữ Liệu Safe 100% ← Bạn đang đọc
  13. 13. Tính Kế Thừa (Inheritance): Tái Sử Dụng Mã Nguồn Với Từ Khóa Extends
  14. 14. Tính Đa Hình (Polymorphism): Nạp Chồng (Overloading) Và Ghi Đè (Overriding)
  15. 15. Lộ Trình Tự Học Java: Tính Trừu Tượng (Abstraction) - Abstract Class Hay Interface?
  16. 16. Xử Lý Ngoại Lệ (Exception Handling): Giúp Chương Trình Không Bị 'Sập' Đột Ngột
  17. 17. Java Collections Framework: Làm Quen Mảng Cố Định Với ArrayList
  18. 18. Lưu Trữ Cặp Dữ Liệu Key-Value Cực Kỳ Nhanh Với HashMap
  19. 19. Đọc Và Ghi File Trong Java: Lưu Trữ Dữ Liệu Lâu Dài Vào Ổ Cứng
  20. 20. Dự Án Thực Tế: Xây Dựng Ứng Dụng Quản Lý Sinh Viên Console Hoàn Chỉnh

← Bài trước: Lập Trình Hướng Đối Tượng (OOP): Lớp (Class) Và Đối Tượng (Object) Là Đâu? Bài tiếp theo: Tính Kế Thừa (Inheritance): Tái Sử Dụng Mã Nguồn Với Từ Khóa Extends →

Nhận xét