Lập trình phía đối tướng có không ít concept, trong số ấy Đóng gói (Encapsulation) là một khái niệm cực kỳ quan trọng.Hôm nay mình sẽ ra mắt với các bạn về Đóng gói trong lập trình Java phía đối tượng bằng ví dụ nắm thể.

Bạn đang xem: Encapsulation là gì


*
Ví dụ về Đóng gói (Encapsulation) trong Java OOP
Trong bài học này bạn sẽ được học:Đóng gói trong Java là gì?Ví dụ về Đóng gói vào JavaẨn tài liệu trong JavaCác cách làm Getter và Setter trong JavaTrừu tượng so với Đóng góiƯu điểm của đóng gói trong Java
Đóng gói là một trong những nguyên tắc đóng gói dữ liệu (biến) cùng với nhau dưới dạng một đối chọi vị. Đây là 1 trong những 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.
cách học nhanh nhất có thể là học qua lấy ví dụ thực tế. Và để hiểu chi tiết đóng gói là gì, mình đã thử hack thông tin tài khoản ngân hàng:Trước tiên, thông tin tài khoản ngân hàng đơn giản và dễ dàng được tế bào phỏng bằng class trương mục sau với phương thức tiền gửi và hiển thị số dư.
class account { private int account_number; private int account_balance; public void show Data() //code to lớn show data public void deposit(int a) { if (a
đưa sử bản thân định thủ thuật tài khoản bank này, mình sẽ nỗ lực để tất cả quyền truy vấn vào mã tài khoản ngân hàng.Bây giờ, bản thân thử nỗ lực trừ 100 đồng ở thông tin tài khoản này bởi hai cách. Hãy thuộc xem biện pháp làm này như thế nào nhé:Cách tiếp cận 1: Mình nỗ lực thực hiện nay một lệnh chưa phù hợp lệ(giả sử -100 đồng) vào tài khoản ngân hàng này bằng phương pháp thao túng thiếu code như sau:
Bây giờ, câu hỏi là - cách này hoàn toàn có thể thành công không? Hãy thử kiểm tra xem:Thông thường, một phát triển thành trong một tấm được đặt là 'private' như hình mặt dưới. Nó chỉ rất có thể được truy cập với những phương thức được tư tưởng trong class đó. Không tồn tại class hoặc đối tượng người dùng nào khác rất có thể truy cập vào chúng.
*
Ví dụ về Encapsulation vào Java OOP: công dụng của private
Nếu một data member là private, điều đó tức là nó chỉ rất có thể được truy vấn trong và một class. Không có class phía bên ngoài có thể truy vấn private data thành viên hoặc biến đổi của class khác.Vì vậy, vào trường hợp trả định này, mình không thể trừ -100 đồng ở thông tin tài khoản của bank này.Cách thứ2: giải pháp tiếp cận đầu tiên của chính mình nhằm nỗ lực trừ tiền tuy thế không thể, thế cho nên tiếp theo, bản thân sẽthửtrừ 100 đồng bằng phương pháp sử dụng thủ tục 'deposit'.
nhưng lại trong class Account thuở đầu có kiểm tra các giá trị âm. Bởi vì vậy, bí quyết thứ hai cũng lại thất bại.
*
Ví dụ về Encapsulation trong Java OOP: khám nghiệm giá trị âm
Do đó, tài khoản ngân hàng này không bị lộ dữ liệu của nó ra bên ngoài. Cũng chính vì thế, điều này tạo cho tài khoản ngân hàng này trở bắt buộc an toàn.

Xem thêm: Chế Độ Public Trên Facebook Là Gì ? Các Thuật Ngữ Chứa Public


*
Ví dụ về Encapsulation vào Java OOP: Ứng dụng bình an nhờ Đóng gói
Toàn cỗ mã có thể được xem là một viên nhộng (là dạng hình dạng dung dịch viên nang đó) và chúng ta chỉ hoàn toàn có thể giao tiếp qua các tin nhắn. Chính vì thế nó mang tên là Đóng gói (Encapsulation).
Thông thường, Java Encapsulation được gọi là ẩn dữ liệu (data hiding). Nhưng hơn cả việc ẩn dữ liệu, tư tưởng Encapsulation tức là để quản lý tốt hơn hoặc nhóm những dữ liệu tương quan lại cùng với nhau.Để bớt mức độ gói gọn trong Java, chúng ta cũng có thể sử dụng 'protected' hoặc 'public'.Thêm nữa, với câu hỏi đóng gói, những lập trình viên Java có thể dễ dàng cầm cố đổi một trong những phần của mã mà không tác động đến phần khác.
nếu như một data member được khai báo là 'private', thì nó chỉ có thể được truy vấn trong cùng một class. Không có class phía bên ngoài nào rất có thể truy cập data member của class đó.Nếu bạn cần truy vấn các thay đổi này, bạn phải sử dụng các phương thức public 'getter' cùng 'setter'.Các thủ tục của Getter với Setter được áp dụng để tạo, sửa đổi, xóa cùng xem những giá trị biến.

Ví dụ về phương thức Getter và Setter trong lập trình Java:


class Account private int account_number;private int account_balance; // getter methodpublic int getBalance() return this.account_balance; // setter methodpublic void setNumber(int num) this.account_number = num;
Trong ví dụ như trên:Phương thức getBalance() là cách làm getter đọc giá trị của đổi mới account_balancePhương thức setNumber () là cách thức setter để hoặc update giá trị cho biến chuyển account_number
Thông thường, Đóng gói hay bị phát âm nhầm với Trừu tượng.Encapsulation nói đến 'Làm cầm cố nào' để làm được chức năng đóTrừu tượng cho nên 'Cái gì' mà một class hoàn toàn có thể làm.Một ví dụ đơn giản để gọi sự biệt lập này là điện thoại thông minh di động.Trong đó, xúc tích phức tạp bên phía trong bảng mạch được gói gọn trong màn hình cảm ứng và hình ảnh được hỗ trợ để trừu tượng hóa nó ra cho những người dùng.