Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Truyền kiểu Java và các kiểu của nó với sự trợ giúp của các ví dụ.
Trước khi bạn tìm hiểu về Truyền kiểu Java , hãy đảm bảo rằng bạn biết về Kiểu dữ liệu Java .
Loại Đúc
Quá trình chuyển đổi giá trị của một kiểu dữ liệu ( int
, float
, double
, vv) để một loại dữ liệu được gọi là typecasting.
Trong Java, có 13 kiểu chuyển đổi kiểu. Tuy nhiên, trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào 2 loại chính.
1. Đúc kiểu mở rộng
2. Đúc 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) .
Mở rộng kiểu Đúc
Trong Truyền kiểu mở rộng , Java tự động chuyển đổi một kiểu dữ liệu này sang kiểu dữ liệu khác.
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 int
biến kiểu có tên là num cho một double
biến kiểu có tên là dữ liệu .
Ở đây, Java đầu tiên chuyển đổi int
dữ liệu kiểu thành double
kiểu. Và sau đó gán nó cho double
biến.
Trong trường hợp Truyền 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à Truyền kiểu ngầm định .
Đúc loại thu hẹp
Trong Truyền kiểu thu hẹp , chúng tôi chuyển đổ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.
Ví dụ: Chuyển 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 double
biến kiểu có tên là num cho một int
biến kiểu có tên là dữ liệu .
Lưu ý dòng,
int data = (int)num;
Ở đây, int
từ khóa bên trong dấu ngoặc đơn cho biết rằng biến num được chuyển đổi thành int
kiểu.
Trong trường hợp Truyền 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 diễn ra tự động.
Lưu ý : Đây còn được gọi là Truyền kiểu rõ ràng .
Hãy xem một số ví dụ về chuyển đổi kiểu khác trong Java.
Ví dụ 1: Kiểu chuyển đổi 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, lưu ý 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.
Ví dụ 2: Kiểu chuyển đổi từ String sang int
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 parseInt()
phương thức của Integer
lớp Java để chuyển một biến kiểu chuỗi thành một int
biến.
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ẽ NumberFormatException
xảy ra.