Tính bao đóng trong Java




Tính bao đóng trong Java là một tiến trình đóng gói code và dữ liệu lại với nhau vào trong một đơn vị unit đơn, ví dụ như một gói bột giặt là hỗn hợp của các hạt bột giặt khác nhau. Chúng ta có thể tạo một lớp được bao đóng hoàn toàn trong Java bằng việc tạo tất cả thành viên dữ liệu của lớp là private. Bây giờ, chúng ta sử dụng phương thức setter và getter để thiết lập và lấy dữ liệu trong nó. Lớp Java Bean là ví dụ về một lớp được bao đóng hoàn toàn.

Tính bao đóng là kỹ thuật tạo một trường của lớp private và cung cấp khả năng truy cập trường này qua các phương thức pullic. Nếu một trường được khai báo là private, nó không thể được truy cập bởi bên ngoài lớp, do đó có thể che dấu các trường có lớp này. Vì lý do này, tính bao đóng được ám chỉ như việc dấu dữ liệu (data hiding).

Tính bao đóng có thể được mô tả như là một tấm bảo vệ code và tránh code và dữ liệu của bạn bị truy cập một cách ngẫu nhiên bởi các code khác bên ngoài class. Truy cập dữ liệu và code được điều khiển một cách chặt chẽ bởi một interface.

Lợi thế của tính bao đóng trong Java

Bởi cung cấp phương thức setter hoặc getter, bạn có thể làm cho lớp là read-only hoặc write-only. Nó cung cấp cho bạn sự điều khiển thông qua dữ liệu. Giả sử bạn muốn thiết lập giá trị của id là lớn hơn 100, thì bạn có thể viết biểu thức logic bên trong phương thức setter.

  • Tất cả các lớp có thể có chế độ chỉ đọc hoặc chỉ ghi (chỉ có hàm getter hoặc setter)

  • Một lớp có thể có toàn bộ điều khiển thông qua những gì được lưu giữ trong các trường của nó.

  • Người sử dụng của class không biết cách các class lưu trữ dữ liệu. Một class có thể thay đổi kiểu dữ liệu của một trường và người dùng class không cần sự thay đổi trong code.

Ví dụ

Bạn theo dõi ví dụ sau về tính bao đóng mà chỉ có một trường với phương thức setter và getter của nó.

//Luu duoi dang Student.java  
package com.vietjack;  
public class Student{  
private String name;  
   
public String getName(){  
return name;  
}  
public void setName(String name){  
this.name=name  
}  
}   
//Luu duoi dang Test.java  
package com.vietjack;  
class Test{  
public static void main(String[] args){  
Student s=new Student();  
s.setname("vietjackteam");  
System.out.println(s.getName());  
}  
}  
  • Để biên dịch: javac -d . Test.java

  • Để chạy: java com.vietjack.Test

Chương trình Java trên sẽ cho kết quả:

output: vietjackteam

Mọi người cho thể tham gia khóa học thứ 3 của vietjackteam vào đầu tháng 07/2017 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Khóa học cũng đưa 200 câu hỏi phỏng vấn java trên https://www.javatpoint.com/corejava-interview-questions vào nội dung để giúp các bạn dễ dàng vượt qua kì phỏng vấn

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Thông tin khóa học tại Khóa học Java Online trên Udemy

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.



Demo một bài giảng trong khóa học online tại vietjackteam.