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 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 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
Giá trị nguyên: 10 Giá trị kép: 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 trước 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
Giá trị kép: 10,99 Giá trị nguyên: 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
Giá trị nguyên là: 10 Giá trị chuỗi là: 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.
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
Giá trị chuỗi là: 10 Giá trị nguyên là: 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.