Xử lý đối tượng

2 minute read

II. Lập trình hướng đối tượng trong Java:

D. Xử lý đối tượng:

  1. Encapsulation (Bao gồm):

    • Encapsulation là một nguyên tắc quan trọng trong lập trình hướng đối tượng, mà theo đó dữ liệu (trường) trong một lớp được bảo vệ bằng cách làm cho chúng riêng tư (private) và cung cấp các phương thức công khai (public methods) để truy cập và thay đổi dữ liệu đó.
    • Mục đích chính của encapsulation là ẩn thông tin chi tiết của một lớp và ngăn chặn truy cập trực tiếp từ bên ngoài, giúp bảo vệ tính toàn vẹn của dữ liệu và cung cấp một giao diện duy nhất để tương tác với đối tượng.
    • Cú pháp:
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      
      public class ClassName {
          // Trường (fields) được khai báo private
          private dataType fieldName;
      
          // Phương thức (methods) công khai để truy cập và cập nhật trường
          public returnType getFieldName() {
              return fieldName;
          }
      
          public void setFieldName(dataType newValue) {
              this.fieldName = newValue;
          }
      }
      
  2. Composition và Aggregation:

    • Composition: Composition là một mối quan hệ mạnh mẽ giữa hai lớp, trong đó một đối tượng của lớp này chứa một đối tượng của lớp khác như một phần của nó. Điều này có nghĩa là nếu đối tượng cha bị hủy, tất cả các đối tượng con cũng sẽ bị hủy.
    • Aggregation: Aggregation cũng là một mối quan hệ giữa hai lớp, nhưng mối quan hệ này yếu hơn. Một đối tượng của lớp này được sử dụng bởi một đối tượng của lớp khác, nhưng nó không phải là một phần của đối tượng đó. Trong trường hợp này, các đối tượng có thể tồn tại độc lập với nhau.
    • Ví dụ:
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
      class Engine {
          // Code for Engine class
      }
      
      class Car {
          private Engine engine; // Composition
      
          public Car(Engine engine) {
              this.engine = engine;
          }
      }
      
      class Team {
          private List<Player> players; // Aggregation
      
          public Team(List<Player> players) {
              this.players = players;
          }
      }
      

    Trong ví dụ này, Car chứa một Engine như một phần của nó, do đó là composition. Trong khi đó, Team sử dụng một danh sách các Player, nhưng các Player có thể tồn tại độc lập với Team, nên đây là aggregation.

Encapsulation, composition và aggregation là các khái niệm quan trọng trong việc thiết kế các lớp và đối tượng trong Java, giúp cải thiện tính bảo mật, tái sử dụng mã và quản lý phụ thuộc giữa các đối tượng.