Nhân bản đối tượng trong Java
Trong quá trình lập trình để giảm thiểu tác vụ xử lý, chúng ta sử dụng nhiều cách. Mà cách tối ưu nhất là nhân bản đối tượng. Vậy nhân bản đối tượng là gì? Sử dụng phương thức nào để thực hiện, mời bạn đọc cùng eLib.VN tìm hiểu qua bài viết dưới đây.
Mục lục nội dung
1. Nhân bản đối tượng là gì?
Nhân bản đối tượng là một cách để tạo một bản sao của một đối tượng. Để thực hiện mục đích này, bạn sử dụng phương thức clone(). Java.lang.Cloneable Interface phải được triển khai bởi lớp mà có đối tượng cần nhân bản chúng ta muốn tạo. Nếu bạn không triển khai Cloneable Interface, phương thức clone() sẽ tạo CloneNoSupportedException.
Phương thức clone() được định nghĩa trong lớp Object.
Cú pháp của phương thức clone() như sau:
protected Object clone() throws CloneNotSupportedException
2. Tại sao sử dụng phương thức clone() trong Java?
Phương thức clone() tiết kiệm các tiến trình xử lý phụ để tạo bản nhân bản của một đối tượng. Nếu bạn thực hiện nó bởi từ khóa new, điều này sẽ tốn nhiều tiến trình xử lý hơn, và đó là lý do tại sao chúng ta sử dụng nhân bản đối tượng.
Ví dụ
Bạn theo dõi ví dụ đơn giản sau về nhân bản đối tượng với phương thức clone() trong Java:
class Student18 implements Cloneable {
int rollno;
String name;
Student18(int rollno, String name) {
this.rollno = rollno;
this.name = name;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
public static void main(String args[]) {
try {
Student18 s1 = new Student18(101, "eLib");
Student18 s2 = (Student18) s1.clone();
System.out.println(s1.rollno + " " + s1.name);
System.out.println(s2.rollno + " " + s2.name);
} catch(CloneNotSupportedException c) {}
}
}
Chạy chương trình Java trên sẽ cho kết quả dạng:
Output:101 eLib
101 eLib
Như bạn thấy trong ví dụ trên, các biến tham chiếu đều có cùng giá trị. Vì thế, phương thức clone() sao chép các giá trị của một đối tượng sang đối tượng khác. Do đó, chúng ta không cần viết code tường minh để sao chép giá trị từ đối tượng này sang đối tượng khác.
Nếu bạn tạo đối tượng khác với từ khóa new và gán giá trị của đối tượng khác cho nó, thì điều này tốn nhiều tiến trình xử lý hơn trên đối tượng này. Do đó để tiết kiệm các tiến trình xử lý phụ, chúng ta nên sử dụng phương thức clone().
Trên đây là bài viết của eLib.VN về cách nhân bản đối tượng trong Java. Để tối ưu hóa và giảm thiểu các tác vụ xử lý trên đối tượng thì có nhiều cách. Nhân bản đối tượng là cách đơn giản và dễ hiểu nhất. Hãy thử vận dụng để trãi nghiệm nhé! Chúc các bạn thành công!
Tham khảo thêm
- doc Đối tượng và lớp (class) trong Java
- doc Phương thức trong Java
- doc Nạp chồng phương thức trong Java
- doc Constructor trong Java
- doc Từ khóa static trong Java
- doc Từ khóa this trong Java
- doc Tính kế thừa trong Java - Từ khóa extends và implements trong Java
- doc Ghi đè phương thức trong Java
- doc Kiểu trả về covariant trong Java
- doc Từ khóa super trong Java
- doc Từ khóa final trong Java
- doc Tính đa hình trong Java
- doc Gắn kết tĩnh và Gắn kết động (Dynamic Binding) trong Java
- doc Toán tử instanceof trong Java
- doc Tính trừu tượng trong Java
- doc Abstract Class trong Java
- doc Interface trong Java
- doc Phân biệt lớp abstract và Interface trong Java
- doc Package trong Java
- doc Các kiểu Modifier trong Java
- doc Access Modifier trong Java
- doc Non Access Modifier trong Java
- doc Tính đóng gói trong Java
- doc Lớp Object trong Java
- doc Mảng (Array) trong Java
- doc Lớp Wrapper trong Java
- doc Truyền giá trị và tham chiếu trong Java
- doc Từ khóa strictfp trong Java
- doc Regular Expression trong Java