Đóng gói trong Java là gì?

Đóng gói là một nguyên tắc bao bọc dữ liệu (biến) và mã với nhau dưới dạng một đơn vị. Đây là một trong bốn khái niệm OOP. Ba cái còn lại là Kế thừa, Đa hình và Trừu tượng.
Trong hướng dẫn này, bạn sẽ học-
  • Đóng gói trong Java là gì?
  • Tìm hiểu đóng gói với một ví dụ
  • Ẩn dữ liệu trong Java
  • Các phương thức Getter và Setter trong Java
  • Trừu tượng so với đóng gói
  • Ưu điểm của đóng gói trong Java
Tìm hiểu đóng gói với một ví dụ
Để hiểu chi tiết đóng gói là gì, hãy xem xét lớp tài khoản ngân hàng sau với tiền gửi và hiển thị các phương thức số dư


class Account{ 
private int account_number;
private int account_balance; 
    // getter method
 public int getBalance() {
        return this.account_balance;
    }
    // setter method
 public void setNumber(int num) {
        this.account_number = num;
    }
}
Giả sử một hacker quản lý để có quyền truy cập vào mã tài khoản ngân hàng của bạn. Bây giờ, anh ta cố gắng gửi số tiền -100 vào tài khoản của bạn bằng hai cách. Hãy xem phương pháp hoặc cách tiếp cận đầu tiên của anh ấy.
Cách tiếp cận 1: Anh ta cố gắng gửi một số tiền không hợp lệ (giả sử -100) vào tài khoản ngân hàng của bạn bằng cách thao túng mã.
Tìm hiểu đóng gói Java trong 10 phút
Bây giờ, câu hỏi là - Điều đó có thể không? Hãy điều tra.
Thông thường, một biến trong một lớp được đặt là "riêng tư" như hiển thị bên dưới. Nó chỉ có thể được truy cập với các phương thức được định nghĩa trong lớp. Không có lớp hoặc đối tượng khác có thể truy cập chúng.
Tìm hiểu đóng gói Java trong 10 phút
Nếu một thành viên dữ liệu là riêng tư, điều đó có nghĩa là nó chỉ có thể được truy cập trong cùng một lớp. Không có lớp bên ngoài có thể truy cập thành viên dữ liệu riêng tư hoặc biến của lớp khác.
Vì vậy, trong trường hợp của chúng tôi, hacker không thể gửi số tiền -100 vào tài khoản của bạn.
Tìm hiểu đóng gói Java trong 10 phút
Cách tiếp cận 2 : Cách tiếp cận đầu tiên của Hacker không thể gửi số tiền này. Tiếp theo, anh ta cố gắng gửi một khoản tiền -100 bằng cách sử dụng phương thức "ký gửi".
Tìm hiểu đóng gói Java trong 10 phút
Nhưng phương thức thực hiện có kiểm tra các giá trị âm. Vì vậy, cách tiếp cận thứ hai cũng thất bại.
Tìm hiểu đóng gói Java trong 10 phút
Do đó, bạn không bao giờ để lộ dữ liệu của mình cho bên ngoài. Điều này làm cho ứng dụng của bạn an toàn.
Tìm hiểu đóng gói Java trong 10 phút
Toàn bộ mã có thể được coi là một viên nang và bạn chỉ có thể giao tiếp qua các tin nhắn. Do đó đóng gói tên.

Ẩn dữ liệu trong Java

Thông thường, đóng gói Java được gọi là ẩn dữ liệu . Nhưng hơn cả việc ẩn dữ liệu, khái niệm đóng gói có nghĩa là để quản lý tốt hơn hoặc nhóm các dữ liệu liên quan.
Để đạt được mức độ đóng gói ít hơn trong Java, bạn có thể sử dụng các công cụ sửa đổi như "được bảo vệ" hoặc "công khai". Với việc đóng gói, các nhà phát triển có thể dễ dàng thay đổi một phần của mã mà không ảnh hưởng đến phần khác.

Các phương thức Getter và Setter trong Java

Nếu một thành viên dữ liệu được khai báo là "riêng tư", thì nó chỉ có thể được truy cập trong cùng một lớp. Không có lớp bên ngoài có thể truy cập thành viên dữ liệu của lớp đó. Nếu bạn cần truy cập các biến này, bạn phải sử dụng các phương thức "getter" và "setter" công khai.
Các phương thức của Getter và Setter được sử dụng để tạo, sửa đổi, xóa và xem các giá trị biến.
Đoạn mã sau đây là một ví dụ về các phương thức getter và setter:


class Account{ 
private int account_number;
private int account_balance; 
    // getter method
 public int getBalance() {
        return this.account_balance;
    }
    // setter method
 public void setNumber(int num) {
        this.account_number = num;
    }
}
Trong ví dụ trên, phương thức getBalance () là phương thức getter đọc giá trị của biến account_balance và phương thức setNumber () là phương thức setter đặt hoặc cập nhật giá trị cho biến account_number.

Trừu tượng so với đóng gói

Thông thường đóng gói bị hiểu nhầm với Trừu tượng. Cho phép học-
  • Đóng gói là về "Làm thế nào" để đạt được một chức năng
  • Trừu tượng là nhiều hơn về "Những gì" một lớp có thể làm.
Một ví dụ đơn giản để hiểu sự khác biệt này là một chiếc điện thoại di động. Trong đó logic phức tạp trong bảng mạch được gói gọn trong màn hình cảm ứng và giao diện được cung cấp để trừu tượng hóa nó ra.

Ưu điểm của đóng gói trong Java

  • Đóng gói là ràng buộc dữ liệu với các chức năng liên quan của nó. Ở đây chức năng có nghĩa là "phương thức" và dữ liệu có nghĩa là "biến"
  • Vì vậy, chúng tôi giữ biến và phương pháp ở một nơi. Nơi đó là "đẳng cấp." Lớp là cơ sở để đóng gói.
  • Với Đóng gói Java, bạn có thể ẩn (hạn chế quyền truy cập) đối với các thành viên dữ liệu quan trọng trong mã của mình, điều này giúp cải thiện bảo mật
  • Như chúng ta đã thảo luận trước đó, nếu một thành viên dữ liệu được khai báo là "riêng tư", thì nó chỉ có thể được truy cập trong cùng một lớp. Không có lớp bên ngoài có thể truy cập thành viên dữ liệu (biến) của lớp khác.
  • Tuy nhiên, nếu bạn cần truy cập các biến này, bạn phải sử dụng các phương thức "getter" và "setter" công khai .

Post a Comment

Mới hơn Cũ hơn