Tính đóng gói (Encapsulation) trong java – GP Coder (Lập trình Java)

Tính đóng gói hay tính bao đóng ( Encapsulation ) là một trong bốn đặc thù cơ bản của lập trình hướng đối tượng người tiêu dùng trong Java .Tính đóng gói là kỹ thuật ẩn giấu thông tin không tương quan và hiện thị ra thông tương quan. Mục đích chính của đóng gói trong java là giảm thiểu mức độ phức tạp tăng trưởng ứng dụng .

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. 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ó.

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

Để đạt được đóng gói trong Java chúng ta cần:

  • Khai báo các biến của một lớp là private.
  • Cung cấp phương thức setter và getter là public để có thể sửa đổi và xem các giá trị biến.

Ví dụ:

Student. java


package com.gpcoder.encapsulation;

public class Student {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

Các phương pháp public setXXX ( ) và getXXX ( ) là những điểm truy vấn đến những biến của lớp Student. Thông thường, những phương pháp này được gọi là getters và setters. Vì vậy, bất kể đối tượng người tiêu dùng nào nào muốn truy vấn vào những biến private sẽ truy vấn chúng trải qua những trình getters và setters này .Các biến của lớp Student hoàn toàn có thể được truy vấn như chương trình dưới đây :

package com.gpcoder.encapsulation;

public class EncapsulationExample {

	public static void main(String[] args) {
		Student s = new Student();
		s.setName("gpcode.com");
		System.out.println(s.getName());
	}

}

Kết quả thực thi chương trình trên :

gpcode.com

Lưu ý Quy ước đặt tên:

Quy ước đặt tên biến trong Java : từ tiên phong là viết thường, từ thứ hai trở đi viết hoa vần âm tiên phong ở mỗi từ. Xem thêm ở bài viết Tiêu chuẩn coding trong Java ( Coding Standards ) .Quy ước đặt tên phương pháp getter và setter như sau :

  • Getter: bắt đầu bằng chữ get + viết hoa chữ đầu tiên tất cả các từ (viết hoa chữ đầu tiên của tên biến).
  • Setter: bắt đầu bằng chữ set + viết hoa chữ đầu tiên tất cả các từ (viết hoa chữ đầu tiên của tên biến).

Ví dụ :


private String firstName;

public void setFirstName() {

}

public String getFirstName() {

}

Lợi ích của đóng gói trong java

  • Tất cả các trường (field) của lớp có có chế độ chỉ đọc (read-only) hoặc chỉ ghi (write-only), tức là 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 (field) 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.

Tài liệu tham khảo:

3.7

Nếu bạn thấy hay thì hãy chia sẻ bài viết cho mọi người nhé!

Shares

Bình luận

phản hồi