Java Encapsulation

Java Encapsulation: Định Nghĩa, Cú Pháp và Ví Dụ

Java Encapsulation (Đóng gói) là một trong những khái niệm cơ bản trong lập trình hướng đối tượng (OOP). Nó cho phép chúng ta đóng gói dữ liệu (thuộc tính) và các phương thức (hàm) vào trong một lớp (class). Mục đích chính của Encapsulation là bảo vệ dữ liệu bên trong lớp khỏi sự truy cập trực tiếp từ bên ngoài, từ đó tăng tính an toàn và bảo mật cho chương trình.

Định Nghĩa của Encapsulation

Encapsulation là một cơ chế mà trong đó dữ liệu (thuộc tính) của một lớp được bảo vệ và chỉ có thể được truy cập hoặc sửa đổi thông qua các phương thức công khai (public methods) mà lớp cung cấp. Điều này giúp kiểm soát và giới hạn cách mà dữ liệu được truy cập và sửa đổi.

Cú Pháp của Encapsulation

Để thực hiện Encapsulation trong Java, chúng ta thường sử dụng các bước sau:

1. Đặt các thuộc tính (fields) của lớp với mức truy cập private.
2. Cung cấp các phương thức public để truy cập và sửa đổi dữ liệu (getter và setter).

Ví Dụ về Encapsulation trong Java

Dưới đây là một ví dụ đơn giản về Encapsulation trong Java:

public class Student {
    // Thuộc tính được khai báo là private
    private String name;
    private int age;

    // Getter cho biến name
    public String getName() {
        return name;
    }

    // Setter cho biến name
    public void setName(String name) {
        this.name = name;
    }

    // Getter cho biến age
    public int getAge() {
        return age;
    }

    // Setter cho biến age
    public void setAge(int age) {
        if (age > 0) { // Kiểm tra giá trị hợp lệ
            this.age = age;
        } else {
            System.out.println("Age must be positive");
        }
    }
}

// Sử dụng lớp Student
public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("John Doe");
        student.setAge(20);

        System.out.println("Name: " + student.getName());
        System.out.println("Age: " + student.getAge());
    }
}

Trong ví dụ trên, chúng ta đã tạo một lớp Student với các thuộc tính nameage là private. Chúng ta cung cấp các phương thức getter và setter để truy cập và sửa đổi giá trị của các thuộc tính này. Cách này giúp bảo vệ dữ liệu của lớp và chỉ cho phép truy cập thông qua các phương thức được kiểm soát.

Kết Luận

Encapsulation là một trong những khái niệm chủ chốt trong lập trình hướng đối tượng, giúp bảo vệ và kiểm soát truy cập dữ liệu. Việc sử dụng Encapsulation trong Java không chỉ tăng mức độ bảo mật cho chương trình mà còn giúp xây dựng mã nguồn rõ ràng và dễ duy trì hơn.