Wrapper class trong Java | Laptrinhcanban.com

Wrapper class trong Java

Cùng tìm hiểu về wrapper class trong Java. Bạn sẽ học được khái niệm wrapper class trong Java là gì, cách khai báo, gán và truy xuất giá trị thuộc kiểu nguyên thủy vào đối tượng tạo ra bởi wrappper class, cũng như cách sử dụng chức năng autoboxing của wrapper class trong Java sau bài học này.

wrapper class trong Java là gì

wrapper class trong Java là các class giúp “đóng gói” các dữ liệu thuộc kiểu dữ liệu nguyên thủy trong Java thành một đối tượng, để có thể sử dụng các phương thức phong phú đã được chuẩn bị sẵn trong class với các dữ liệu đó.

Trong Java có 8 kiểu dữ liệu nguyên thủy, và để tính toán thôi thì có lẽ chỉ 8 kiểu dữ liệu này cũng là quá đủ rồi. Tuy nhiên, với các wrapper class tương ứng với các kiểu dữ liệu nguyên thủy này, ngoài việc sử dụng giá trị để tính toán, chúng ta sẽ có thêm vô vàn các phương thức phong phú khác được cài sẵn trong class, giúp việc xử lý các dữ liệu này trong Java trở nên linh hoạt và dễ dàng hơn.

Một ví dụ cụ thể nhất là với kiểu dữ liệu số int, sau khi tạo ra đối tượng của wrapper class tương ứng với kiểu int, chúng ta đã có thể ngay lập tức sử dụng một phương thức chuyển số thành chuỗi ký tự trong Java chẳng hạn.

Có 8 wrapper class tương ứng với 8 kiểu dữ liệu nguyên thủy trong Java như sau:

Kiểu nguyên thủyWrapper class
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

Về cơ bản thì tên của wrapper class sẽ là tên của kiểu dữ liệu nguyên thủy được viết hoa chữ cái đầu tiên. Lưu ý là wrapper class của int và char sẽ là ngoại lệ.

Tạo đối tượng từ wrapper class trong Java

Để có thể dùng các phương thức được chuẩn bị sẵn trong wrapper class cho một giá trị thuộc kiểu nguyên thủy, trước hết chúng ta cần phải tạo ra một đối tượng từ wrapper class để chứa giá trị đó.

Để tạo ra đối tượng từ wrapper class trong Java, chúng ta sử dụng tới phương thức thành viên valueOf() trong các class wrapper, với cú pháp sau đây:

WrapperClassName name = WrapperClassName.valueOf(value);

Trong đó WrapperClassName là tên của wrapper class, name là tên của đối tượng, và value là giá trị thuộc kiểu nguyên thủy được gán vào đối tượng đó.

Ví dụ cụ thể, chúng ta sẽ tạo ra các đối tượng từ wrapper class để chứa các giá trị thuộc kiểu nguyên thủy, thông qua phương thức thành viên valueOf() tương ứng trong các wrapper class như sau:

Integer i = Integer.valueOf(8);

Long l = Long.valueOf(8L);

Double d = Double.valueOf(8.1);

Float f = Float.valueOf(8.1F);

Lấy giá trị từ các đối tượng của wrapper class trong Java

Sau khi đã gán giá trị nguyên thủy vào đối tượng của wrapper class tương ứng, chúng ta có thể lấy ra giá trị này nhiều lần trong chương trình Java, thông qua các phương thức tương ứng trong các class.

Ví dụ với wrapper class Integer, chúng ta có thể sử dụng tới phương thức intValue() để lấy ra giá trị được gán với cú pháp sau đây:

i.intValue();

Trong đó i chính là tên của đối tượng được tạo ra từ wrapper class Integer chứa giá trị cần lấy.

Hãy cùng xem ví dụ cụ thể sau đây, chúng ta đã lấy và in ra giá trị int bằng 8 được gán vào đối tượng i của wrapper class Integer:

public class Main
{
public static void main(String[] args) {
Integer i = Integer.valueOf(8);

int val = i.intValue();
System.out.println(val);
}
}
// 8

Tương tự với các wrapper class khác thì chúng ta sẽ có các phương thức tương ứng để lấy giá trị, ví dụ như longValue() của wrapper class Long, hay doubleValue() của wrapper class Double chẳng hạn.

Sử dụng autoboxing trong wrapper class Java

Autoboxing được giới thiệu từ Java 5, là một chức năng có tác dụng rút gọn cách viết khi chuyển đổi giữa các kiểu nguyên thủy và các wrapper class tương ứng.

Đây là một chức năng được cài sẵn trong wrapper class, giúp chương trình tự động nhận dạng kiểu dữ liệu nguyên thủy khi gán vào đối tượng của wrapper class, giúp chúng ta lược bỏ đi phần chỉ định phương thức khi viết chương trình

Ví dụ, với cách thông thường, chúng ta sẽ tạo và gán một giá trị kiểu int vào đối tượng của wrapper class Integer như sau:

Integer i = Integer.valueOf(8);

Tuy nhiên bằng cách sử dụng autoboxing trong wrapper class, chúng ta có thể viết ngắn gọn sau đây:

Integer i = 8;

Đó là do chức năng autoboxing trong wrapper class đã tự động nhận diện kiểu nguyên thủy của dữ liệu được gán vào đối tượng i của class Integer như trên.

Ngoài việc sử dụng trong khai báo, thì autoboxing cũng được sử dụng trong việc lấy dữ liệu đã được gán vào đối tượng. Ví dụ, theo cách thông thường chúng ta sẽ lấy giá trị int đã được gán vào đối tượng của wrapper class Integer như sau:

Integer i = Integer.valueOf(8);

int val = i.intValue();

Tuy nhiên với việc dùng chức năng autoboxing trong wrapper class, code trên sẽ được rút ngắn lại như sau:

Integer i = 8;
int val = i;

Tương tự như với wrapper class Integer thì chúng ta cũng có thể sử dụng chức năng autoboxing trong các wrapper class. Lấy ví dụ:

Double d = 8.1;
double val = d;
System.out.println(val);
//8.1

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về wrapper class trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.