Encapsulation (Đóng gói)
Encapsulation là một trong 4 khái niệm OOP cơ bản. Ba khái niệm còn lại: inheritance, polymorphism, abstraction.
Encapsulation trong Java là cơ chế gói dữ liệu (biến) và code tác động lên dữ liệu (phương thức) thành một đơn vị duy nhất. Trong encapsulation, biến của lớp bị ẩn từ các lớp khác và chỉ truy cập được qua phương thức của lớp hiện tại. Do đó cũng gọi là data hiding (ẩn dữ liệu).
Để đạt encapsulation trong Java:
- Khai báo biến của lớp là
private. - Cung cấp public setter và getter để sửa đổi và xem giá trị biến.
Abstraction (Trừu tượng)
Abstraction là chất lượng xử lý ý tưởng thay vì sự kiện. Ví dụ email: chi tiết phức tạp (protocol, server) ẩn khỏi người dùng. Chỉ cần nhập nội dung, địa chỉ, bấm gửi.
Trong OOP, abstraction là quá trình ẩn chi tiết triển khai khỏi người dùng, chỉ cung cấp chức năng. Người dùng biết object làm gì, không biết làm thế nào.
Trong Java, abstraction đạt được bằng Abstract class và Interface.