Java Tính đóng gói
Java Encapsulation(Tính đóng gói)
Encapsulation là một trong những nguyên tắc cơ bản của lập trình hướng đối tượng (OOP) trong Java. Encapsulation giúp bảo vệ dữ liệu của đối tượng bằng cách ẩn các chi tiết cụ thể và chỉ cung cấp các phương thức cần thiết để truy cập và thay đổi dữ liệu.
Khái Niệm Encapsulation
Encapsulation là quá trình đóng gói dữ liệu (các biến) và các phương thức hoạt động trên dữ liệu đó thành một khối duy nhất. Trong Java, điều này được thực hiện bằng cách:
Đặt các biến của lớp là
private
.Cung cấp các phương thức
public
getter và setter để truy cập và cập nhật các biến này.
Lợi Ích của Encapsulation
Bảo vệ Dữ liệu: Ngăn chặn truy cập trái phép và thay đổi dữ liệu từ bên ngoài lớp.
Dễ Dàng Bảo Trì: Thay đổi nội bộ của lớp không ảnh hưởng đến các mã sử dụng lớp đó.
Tăng Tính Mô-đun: Các đối tượng có thể được quản lý một cách độc lập và dễ dàng tái sử dụng.
Cách Thực Hiện Encapsulation
Đặt Biến là Private
Các biến của lớp được khai báo là private
để ngăn chặn truy cập trực tiếp từ bên ngoài.
Cung Cấp Phương Thức Getter và Setter
Phương thức getter
để truy cập giá trị của biến và phương thức setter
để thay đổi giá trị của biến. Phương thức setter
có thể bao gồm các kiểm tra hợp lệ để đảm bảo tính toàn vẹn của dữ liệu.
Ví Dụ về Encapsulation
public class Student {
// Biến private
private String name;
private int age;
// Phương thức getter cho name
public String getName() {
return name;
}
// Phương thức setter cho name
public void setName(String name) {
this.name = name;
}
// Phương thức getter cho age
public int getAge() {
return age;
}
// Phương thức setter cho age
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
System.out.println("Tuổi không hợp lệ.");
}
}
}
Sử Dụng Lớp Student
public class Main {
public static void main(String[] args) {
Student student = new Student();
student.setName("Nguyễn Văn A");
student.setAge(20);
System.out.println("Tên: " + student.getName());
System.out.println("Tuổi: " + student.getAge());
}
}
Bài Tập Thực Hành
Tạo Lớp Circle
Tạo một lớp
Circle
với các biến privateradius
vàcolor
.Cung cấp các phương thức public
getRadius()
,setRadius(double radius)
,getColor()
, vàsetColor(String color)
để truy cập và cập nhật giá trị của các biến này.Đảm bảo rằng bán kính không thể là số âm.
Tạo Lớp BankAccount
Tạo một lớp
BankAccount
với biến privatebalance
.Cung cấp các phương thức public
getBalance()
,deposit(double amount)
, vàwithdraw(double amount)
để truy cập và cập nhật số dư tài khoản.Đảm bảo rằng không thể rút số tiền lớn hơn số dư hiện tại.
Tạo Lớp Book
Tạo một lớp
Book
với các biến privatetitle
,author
, vàprice
.Cung cấp các phương thức public
getTitle()
,getAuthor()
,getPrice()
, vàsetPrice(double price)
để truy cập và cập nhật giá trị của các biến này.Đảm bảo rằng giá tiền không thể là số âm.
Hãy thực hiện các bài tập trên để làm quen với Encapsulation trong Java và hiểu rõ hơn về cách sử dụng nó trong lập trình hướng đối tượng.
Last updated