Trong hướng dẫn này, chúng ta sẽ tìm hiểu về ép kiểu trong Java và các kiểu của nó với sự trợ giúp của các ví dụ.
Trước khi tìm hiểu về ép kiểu trong Java , hãy đảm bảo rằng bạn biết về Kiểu dữ liệu Java .
Nội dung chính
1. ÉP kiểu
Quá trình chuyển đổi giá trị của một kiểu dữ liệu ( int, float, double, vv) để thành một loại dữ liệu khác được gọi là typecasting.
Trong Java, có 13 kiểu ép đổi kiểu. Tuy nhiên, trong hướng dẫn này, chúng ta sẽ chỉ tập trung vào 2 loại chính.
1. ép kiểu mở rộng
2. ép loại thu hẹp
Để tìm hiểu về các kiểu chuyển đổi kiểu khác, hãy truy cập Chuyển đổi kiểu Java (tài liệu Java chính thức) .
2. Ép kiểu Mở rộng
Trong ép kiểu mở rộng , Java tự động chuyển đổi một kiểu dữ liệu sang kiểu dữ liệu khác.
2.2 Ví dụ: Chuyển đổi int thành double
class Main {
public static void main(String[] args) {
// create int type variable
int num = 10;
System.out.println("The integer value: " + num);
// convert into double type
double data = num;
System.out.println("The double value: " + data);
}
}
Đầu ra
The integer value: 10
The double value: 10.0
Trong ví dụ trên, chúng ta đang gán biến kiểu int có tênnum đến một biến kiểu double có tên dữ liệu.
Ở đây, Java trước tiên chuyển đổi dữ liệu int kiểu thành kiểu double. Và sau đó gán nó cho biến double.
Trong trường hợp ép kiểu mở rộng , kiểu dữ liệu thấp hơn (có kích thước nhỏ hơn) được chuyển đổi thành kiểu dữ liệu cao hơn (có kích thước lớn hơn). Do đó không có mất mát dữ liệu. Đây là lý do tại sao loại chuyển đổi này xảy ra tự động.
Lưu ý : Đây còn được gọi là ép kiểu ngầm định .
3. Ép kiểu thu hẹp
Trong ép kiểu thu hẹp , chúng ta ép đổi thủ công một kiểu dữ liệu này sang kiểu dữ liệu khác bằng cách sử dụng dấu ngoặc đơn.
3.1 Ví dụ: Ép double thành int
class Main {
public static void main(String[] args) {
// create double type variable
double num = 10.99;
System.out.println("The double value: " + num);
// convert into int type
int data = (int)num;
System.out.println("The integer value: " + data);
}
}
Đầu ra
The double value: 10.99
The integer value: 10
Trong ví dụ trên, chúng ta đang gán biến kiểu double có tên num đến một biến kiểu int có tên dữ liệu.
Lưu ý dòng,
int data = (int)num;
Ở đây, từ khóa int bên trong dấu ngoặc đơn chỉ ra rằng biến num được chuyển thành kiểu int.
Trong trường hợp ép kiểu thu hẹp , các kiểu dữ liệu cao hơn (có kích thước lớn hơn) được chuyển đổi thành các kiểu dữ liệu thấp hơn (có kích thước nhỏ hơn). Do đó có việc mất dữ liệu. Đây là lý do tại sao loại chuyển đổi này không xảy ra tự động.
Lưu ý : Đây còn được gọi là ép kiểu rõ ràng .
Hãy xem một số ví dụ về chuyển đổi kiểu khác trong Java.
4. Ví dụ 1: ép từ int sang String
class Main {
public static void main(String[] args) {
// create int type variable
int num = 10;
System.out.println("The integer value is: " + num);
// converts int to string type
String data = String.valueOf(num);
System.out.println("The string value is: " + data);
}
}
Đầu ra
The integer value is: 10
The string value is: 10
Trong chương trình trên, hãy để ý dòng
String data = String.valueOf(num);
Ở đây, chúng ta đã sử dụng valueOf()phương thức của lớp Java String để chuyển biến kiểu int thành một chuỗi.
5. Ví dụ 2: Ép kiểu từ String sang int
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/
class Main {
public static void main(String[] args) {
// create string type variable
String data = "10";
System.out.println("The string value is: " + data);
// convert string variable to int
int num = Integer.parseInt(data);
System.out.println("The integer value is: " + num);
}
}
Đầu ra
The string value is: 10
The integer value is: 10
Trong ví dụ trên, hãy để ý dòng
int num = Integer.parseInt(data);
Ở đây, chúng ta đã sử dụng phương thức parseInt() của lớp Integer trong Java để chuyển một biến kiểu chuỗi thành một biến int.
Lưu ý : Nếu biến chuỗi không thể được chuyển đổi thành biến số nguyên thì một ngoại lệ có tên sẽ xảy ra NumberFormatException.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Java từ cơ bản tới nâng cao tại đây nha.
- Ebook về Java tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!